sproutcore 1.7.1.beta → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. data/CHANGELOG +44 -0
  2. data/README.rdoc +20 -20
  3. data/VERSION.yml +3 -3
  4. data/lib/Buildfile +1 -1
  5. data/lib/buildtasks/build.rake +5 -0
  6. data/lib/buildtasks/manifest.rake +19 -1
  7. data/lib/frameworks/sproutcore/Buildfile +19 -17
  8. data/lib/frameworks/sproutcore/CHANGELOG.md +163 -29
  9. data/lib/frameworks/sproutcore/README.md +29 -8
  10. data/lib/frameworks/sproutcore/apps/statechart_routing/Buildfile +12 -0
  11. data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/login_controller.js +11 -0
  12. data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/main_controller.js +7 -0
  13. data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/statechart_controller.js +17 -0
  14. data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +25 -0
  15. data/lib/frameworks/sproutcore/apps/statechart_routing/main.js +15 -0
  16. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/_theme.css +18 -0
  17. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/bar_page.js +14 -0
  18. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/foo_page.js +14 -0
  19. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/loading.rhtml +9 -0
  20. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +61 -0
  21. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/main_page.js +46 -0
  22. data/lib/frameworks/sproutcore/apps/statechart_routing/statechart.js +76 -0
  23. data/lib/frameworks/sproutcore/apps/statechart_routing/theme.js +27 -0
  24. data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
  25. data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
  26. data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
  27. data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
  28. data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
  29. data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
  30. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +1 -1
  31. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +14 -1
  32. data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +15 -15
  33. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +1 -1
  34. data/lib/frameworks/sproutcore/frameworks/animation/core.js +8 -5
  35. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +302 -70
  36. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +19 -14
  37. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +471 -149
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +3 -3
  39. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +42 -0
  40. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +3 -2
  41. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
  42. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +1 -1
  43. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +2 -2
  44. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +3 -3
  45. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
  46. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +63 -0
  47. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +1 -1
  48. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +37 -2
  49. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +28 -6
  50. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +10 -3
  51. data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +2 -2
  52. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +66 -2
  53. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +1 -1
  54. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +1 -1
  55. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +58 -57
  56. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +1 -1
  57. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js.orig +445 -0
  58. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +51 -31
  59. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +5 -1
  60. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +53 -69
  61. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
  62. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +98 -72
  63. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +37 -3
  64. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +7 -4
  65. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +21 -0
  66. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +7 -7
  67. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +23 -1
  68. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/browser.js +66 -0
  69. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/event.js +22 -0
  70. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +11 -11
  71. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +4 -4
  72. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +41 -0
  73. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +1 -1
  74. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +8 -8
  75. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +17 -16
  76. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +1 -1
  77. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +1 -1
  78. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +15 -0
  79. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +5 -5
  80. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +50 -30
  81. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +46 -0
  82. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +1 -43
  83. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +8 -34
  84. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +3 -2
  85. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +10 -1
  86. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +6 -5
  87. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +22 -2
  88. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +2 -2
  89. data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +1 -1
  90. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +0 -2
  91. data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +35 -0
  92. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +46 -19
  93. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -9
  94. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +2 -3
  95. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
  96. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -2
  97. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +294 -302
  98. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js.orig +1531 -0
  99. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +4 -2
  100. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +14 -11
  101. data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/many_array.js +63 -0
  102. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
  103. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +4 -4
  104. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +50 -10
  105. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +4 -4
  106. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +3 -3
  107. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
  108. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +1 -1
  109. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
  110. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +114 -67
  111. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +1 -1
  112. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
  113. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +54 -1
  114. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +29 -9
  115. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +1 -1
  116. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
  117. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +1 -1
  118. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
  119. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +1 -1
  120. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +37 -45
  121. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +127 -127
  122. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +16 -0
  123. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +42 -4
  124. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
  125. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -7
  126. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +8 -0
  127. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +2 -1
  128. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +1 -0
  129. data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
  130. data/lib/frameworks/sproutcore/frameworks/desktop/core.js +1 -1
  131. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
  132. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
  133. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +1 -4
  134. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +19 -6
  135. data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +30 -1
  136. data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
  137. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +24 -1
  138. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +121 -28
  139. data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +15 -15
  140. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +1 -1
  141. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
  142. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +2 -2
  143. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +39 -15
  144. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +3 -3
  145. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +2 -2
  146. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +2 -2
  147. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +14 -6
  148. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +3 -3
  149. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +11 -11
  150. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -3
  151. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -51
  152. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +11 -16
  153. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
  154. data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +0 -2
  155. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +3 -3
  156. data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +3 -3
  157. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +9 -9
  158. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +11 -11
  159. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
  160. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
  161. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +107 -81
  162. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +3 -3
  163. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +68 -60
  164. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +57 -12
  165. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +21 -19
  166. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -0
  167. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +2 -2
  168. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +32 -3
  169. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +12 -0
  170. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +12 -0
  171. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +0 -8
  172. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +77 -132
  173. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +5 -6
  174. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +16 -15
  175. data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +52 -52
  176. data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +1 -1
  177. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +1 -1
  178. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +147 -147
  179. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +11 -2
  180. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +2 -2
  181. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +5 -5
  182. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +22 -12
  183. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +13 -7
  184. data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +2 -2
  185. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +462 -441
  186. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +48 -62
  187. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +22 -2
  188. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +150 -32
  189. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +104 -45
  190. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +42 -20
  191. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +24 -24
  192. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +148 -154
  193. data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +2 -2
  194. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +2 -2
  195. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +8 -7
  196. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -2
  197. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
  198. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/files.js +1 -1
  199. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +1 -1
  200. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/targets.js +1 -1
  201. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/view_configs.js +1 -1
  202. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/mixins/drop_down.js +1 -1
  203. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +1 -1
  204. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +1 -1
  205. data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/web.js +1 -1
  206. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +2 -2
  207. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +2 -2
  208. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +1 -1
  209. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +2 -2
  210. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +3 -3
  211. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +1 -1
  212. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +21 -21
  213. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +1 -1
  214. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +59 -53
  215. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +2 -2
  216. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +1 -1
  217. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +6 -6
  218. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +2 -2
  219. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +2 -2
  220. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -10
  221. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +17 -6
  222. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +38 -14
  223. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +5 -13
  224. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +1 -1
  225. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +5 -3
  226. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +19 -0
  227. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +20 -2
  228. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +1 -1
  229. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +35 -12
  230. data/lib/frameworks/sproutcore/frameworks/formatters/README +6 -0
  231. data/lib/frameworks/sproutcore/frameworks/formatters/english.lproj/strings.js +174 -0
  232. data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +351 -0
  233. data/lib/frameworks/sproutcore/frameworks/formatters/tests/date_formatter.js +517 -0
  234. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +1 -1
  235. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +345 -138
  236. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +5 -3
  237. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +176 -42
  238. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
  239. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +137 -105
  240. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +2 -2
  241. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +2 -2
  242. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +16 -1
  243. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +1 -1
  244. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +47 -47
  245. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +3 -3
  246. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +1 -1
  247. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +28 -6
  248. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +1 -1
  249. data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +0 -5
  250. data/lib/frameworks/sproutcore/frameworks/foundation/resources/bootstrap.rhtml +34 -19
  251. data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +0 -2
  252. data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +1 -5
  253. data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +8 -9
  254. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -2
  255. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +179 -47
  256. data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +34 -1
  257. data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
  258. data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +26 -12
  259. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +7 -7
  260. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +12 -4
  261. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_metric_optimization.js +202 -0
  262. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +77 -8
  263. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +1 -0
  264. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +2 -2
  265. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +4 -3
  266. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +4 -2
  267. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +2 -2
  268. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +4 -2
  269. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +4 -2
  270. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +2 -2
  271. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +0 -8
  272. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +163 -149
  273. data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
  274. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +1 -1
  275. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
  276. data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
  277. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +3 -3
  278. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +16 -43
  279. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -3
  280. data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +67 -54
  281. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +49 -38
  282. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +285 -242
  283. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +13 -13
  284. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +19 -22
  285. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +9 -3
  286. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +231 -186
  287. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +145 -143
  288. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +156 -154
  289. data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +5 -5
  290. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +3 -3
  291. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js.orig +540 -0
  292. data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +2 -2
  293. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +15 -8
  294. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +5 -5
  295. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +12 -0
  296. data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +2 -2
  297. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +1 -1
  298. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +1 -1
  299. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +7 -7
  300. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +98 -32
  301. data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +7 -2
  302. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +14 -3
  303. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +98 -13
  304. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +8 -14
  305. data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +1 -1
  306. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +2 -2
  307. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +23 -6
  308. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +69 -18
  309. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +57 -31
  310. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +189 -14
  311. data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +82 -22
  312. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +20 -0
  313. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +125 -4
  314. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +1 -1
  315. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +2 -2
  316. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +37 -0
  317. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +2 -2
  318. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +16 -0
  319. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +75 -4
  320. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +41 -0
  321. data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart_delegate.js +113 -0
  322. data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +312 -0
  323. data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +18 -22
  324. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +508 -131
  325. data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +78 -0
  326. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +265 -44
  327. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +16 -0
  328. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +11 -3
  329. data/lib/frameworks/sproutcore/frameworks/statechart/tests/private/state_path_matcher.js +116 -0
  330. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/add_substate.js +108 -0
  331. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/with_concurrent.js +179 -0
  332. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/without_concurrent.js +74 -0
  333. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_state.js +141 -0
  334. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_substate.js +340 -0
  335. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/route_triggered.js +161 -0
  336. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/try_to_handle_event.js +288 -0
  337. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +5 -33
  338. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +213 -0
  339. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +212 -0
  340. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +8 -0
  341. data/lib/frameworks/sproutcore/frameworks/statechart/tests/{state/namespacing.js → statechart/methods/get_state.js} +3 -41
  342. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/{invoke_state_method.js → methods/invoke_state_method.js} +1 -1
  343. data/lib/frameworks/sproutcore/frameworks/statechart/tests/{event_handling/advanced → statechart}/respond_to_event.js +1 -1
  344. data/lib/frameworks/sproutcore/frameworks/statechart/tests/system/state_route_handler_context/methods/retry.js +64 -0
  345. data/lib/frameworks/sproutcore/frameworks/table/core.js +2 -0
  346. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/controls/button.js +0 -1
  347. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars.js +29 -5
  348. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/bind.js +4 -3
  349. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/collection.js +0 -0
  350. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/localization.js +0 -0
  351. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/view.js +0 -0
  352. data/lib/frameworks/sproutcore/frameworks/{handlebars → template_view}/handlebars.js +493 -357
  353. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/checkbox_support.js +0 -0
  354. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/text_field_support.js +13 -2
  355. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/panes/template.js +0 -0
  356. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/controls/button.js +0 -0
  357. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/checkbox_support.js +0 -0
  358. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/text_field_support.js +0 -0
  359. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/panes/template.js +0 -0
  360. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/collection.js +39 -14
  361. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/core.js +0 -0
  362. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/handlebars.js +57 -6
  363. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/bindable_span.js +21 -6
  364. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template.js +9 -3
  365. data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template_collection.js +55 -26
  366. data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
  367. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +122 -122
  368. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -2
  369. data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +4 -4
  370. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +1 -1
  371. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +0 -1
  372. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +4 -4
  373. data/lib/frameworks/sproutcore/lib/index.rhtml +55 -32
  374. data/lib/frameworks/sproutcore/license.js +2 -4
  375. data/lib/frameworks/sproutcore/themes/ace/resources/body.css +5 -1
  376. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +2 -2
  377. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +21 -13
  378. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +17 -10
  379. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +4 -3
  380. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +20 -12
  381. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +16 -8
  382. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/jumbo/button.css +17 -0
  383. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/small/button.css +17 -0
  384. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +2 -2
  385. data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +2 -2
  386. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +5 -3
  387. data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +1 -1
  388. data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/toolbar.css +1 -1
  389. data/lib/gen/app/USAGE +17 -4
  390. data/lib/gen/language/Buildfile +4 -4
  391. data/lib/gen/language/USAGE +4 -4
  392. data/lib/gen/page/templates/pages/@target_name@/Buildfile +7 -7
  393. data/lib/gen/{html_app → statechart_app}/Buildfile +0 -0
  394. data/lib/gen/{html_app → statechart_app}/README +0 -0
  395. data/lib/gen/statechart_app/USAGE +21 -0
  396. data/lib/gen/statechart_app/templates/apps/@target_name@/Buildfile +9 -0
  397. data/lib/gen/statechart_app/templates/apps/@target_name@/core.js +24 -0
  398. data/lib/gen/statechart_app/templates/apps/@target_name@/main.js +26 -0
  399. data/lib/gen/statechart_app/templates/apps/@target_name@/resources/_theme.css +18 -0
  400. data/lib/gen/statechart_app/templates/apps/@target_name@/resources/loading.rhtml +9 -0
  401. data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js +21 -0
  402. data/lib/gen/statechart_app/templates/apps/@target_name@/statechart.js +8 -0
  403. data/lib/gen/statechart_app/templates/apps/@target_name@/states/ready_state.js +12 -0
  404. data/lib/gen/statechart_app/templates/apps/@target_name@/theme.js +24 -0
  405. data/lib/sproutcore/builders.rb +1 -0
  406. data/lib/sproutcore/builders/base.rb +19 -1
  407. data/lib/sproutcore/builders/chance_file.rb +6 -1
  408. data/lib/sproutcore/builders/handlebars.rb +1 -9
  409. data/lib/sproutcore/builders/javascript.rb +1 -10
  410. data/lib/sproutcore/builders/json.rb +25 -0
  411. data/lib/sproutcore/builders/less.rb +1 -1
  412. data/lib/sproutcore/builders/sass.rb +1 -1
  413. data/lib/sproutcore/builders/stylesheet.rb +1 -9
  414. data/lib/sproutcore/helpers/html5_manifest.rb +1 -1
  415. data/lib/sproutcore/helpers/static_helper.rb +42 -0
  416. data/lib/sproutcore/rack/proxy.rb +21 -3
  417. data/lib/sproutcore/rack/service.rb +3 -2
  418. data/lib/sproutcore/tools.rb +18 -25
  419. data/lib/sproutcore/tools/gen.rb +10 -3
  420. data/lib/sproutcore/tools/init.rb +11 -10
  421. data/spec/buildtasks/manifest/prepare_build_tasks/json_spec.rb +62 -0
  422. data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -1
  423. data/spec/fixtures/builder_tests/apps/json_test/sc_static.json +2 -0
  424. data/spec/lib/builders/json_spec.rb +53 -0
  425. data/sproutcore.gemspec +2 -2
  426. data/vendor/chance/lib/chance/parser.rb +1 -1
  427. metadata +222 -177
  428. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
  429. data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +0 -259
  430. data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
  431. data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +0 -69
  432. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +0 -44
  433. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +0 -64
  434. data/lib/frameworks/sproutcore/frameworks/mini/license.js +0 -30
  435. data/lib/gen/html_app/USAGE +0 -15
  436. data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +0 -11
  437. data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
  438. data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +0 -6
  439. data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +0 -1
  440. data/lib/gen/html_project/Buildfile +0 -45
  441. data/lib/gen/html_project/INIT +0 -3
  442. data/lib/gen/html_project/README +0 -1
  443. data/lib/gen/html_project/USAGE +0 -2
  444. data/lib/gen/html_project/templates/@filename@/Buildfile +0 -5
  445. data/lib/gen/html_project/templates/@filename@/README +0 -4
@@ -9,47 +9,47 @@ sc_require('views/collection');
9
9
  sc_require('mixins/collection_row_delegate');
10
10
 
11
11
  /** @class
12
-
12
+
13
13
  A list view renders vertical lists of items. It is a specialized form of
14
14
  collection view that is simpler than the table view, but more refined than
15
15
  a generic collection.
16
-
16
+
17
17
  You can use a list view just like a collection view, except that often you
18
- also should provide a default rowHeight. Setting this value will allow
18
+ also should provide a default rowHeight. Setting this value will allow
19
19
  the ListView to optimize its rendering.
20
-
20
+
21
21
  ## Variable Row Heights
22
22
 
23
- Normally you set the row height through the rowHeight property. You can
24
- also support custom row heights by implementing the
23
+ Normally you set the row height through the rowHeight property. You can
24
+ also support custom row heights by implementing the
25
25
  contentCustomRowHeightIndexes property to return an index set.
26
-
26
+
27
27
  ## Using ListView with Very Large Data Sets
28
-
28
+
29
29
  ListView implements incremental rendering, which means it will only render
30
30
  HTML for the items that are current visible on the screen. You can use it
31
- to efficiently render lists with 100K+ items very efficiently.
32
-
31
+ to efficiently render lists with 100K+ items very efficiently.
32
+
33
33
  If you need to work with very large lists of items, however, be aware that
34
- calculate variable rows heights can become very expensive since the list
34
+ calculate variable rows heights can become very expensive since the list
35
35
  view will essentially have to iterate over every item in the collection to
36
- collect its row height.
37
-
36
+ collect its row height.
37
+
38
38
  To work with very large lists, you should consider making your row heights
39
- uniform. This will allow the list view to efficiently render content
39
+ uniform. This will allow the list view to efficiently render content
40
40
  without worrying about the overall performance.
41
-
42
- Alternatively, you may want to consider overriding the
43
- offsetForRowAtContentIndex() and heightForRowAtContentIndex() methods to
44
- perform some faster calculations that do not require inspecting every
41
+
42
+ Alternatively, you may want to consider overriding the
43
+ offsetForRowAtContentIndex() and heightForRowAtContentIndex() methods to
44
+ perform some faster calculations that do not require inspecting every
45
45
  item in the collection.
46
-
46
+
47
47
  Note that row heights and offsets are cached so once they are calculated
48
48
  the list view will be able to display very quickly.
49
-
50
- (Can we also have an 'estimate row heights' property that will simply
49
+
50
+ (Can we also have an 'estimate row heights' property that will simply
51
51
  cheat for very long data sets to make rendering more efficient?)
52
-
52
+
53
53
  @extends SC.CollectionView
54
54
  @extends SC.CollectionRowDelegate
55
55
  @since SproutCore 1.0
@@ -69,33 +69,33 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
69
69
  @default YES
70
70
  */
71
71
  acceptsFirstResponder: YES,
72
-
72
+
73
73
  /**
74
74
  If set to YES, the default theme will show alternating rows
75
75
  for the views this ListView created through exampleView property.
76
-
76
+
77
77
  @type Boolean
78
78
  @default NO
79
79
  */
80
80
  showAlternatingRows: NO,
81
-
82
-
81
+
82
+
83
83
  // ..........................................................
84
84
  // METHODS
85
85
  //
86
-
86
+
87
87
  /** @private */
88
88
  render: function(context, firstTime) {
89
89
  context.setClass('alternating', this.get('showAlternatingRows'));
90
-
90
+
91
91
  return sc_super();
92
92
  },
93
93
 
94
94
 
95
95
  // ..........................................................
96
96
  // COLLECTION ROW DELEGATE SUPPORT
97
- //
98
-
97
+ //
98
+
99
99
  /**
100
100
  @field
101
101
  @type Object
@@ -108,8 +108,8 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
108
108
 
109
109
  return this.delegateFor('isCollectionRowDelegate', del, content);
110
110
  }.property('delegate', 'content').cacheable(),
111
-
112
- /** @private
111
+
112
+ /** @private
113
113
  Whenever the rowDelegate changes, begin observing important properties
114
114
  */
115
115
  _sclv_rowDelegateDidChange: function() {
@@ -117,35 +117,35 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
117
117
  del = this.get('rowDelegate'),
118
118
  func = this._sclv_rowHeightDidChange,
119
119
  func2 = this._sclv_customRowHeightIndexesDidChange;
120
-
120
+
121
121
  if (last === del) return this; // nothing to do
122
- this._sclv_rowDelegate = del;
122
+ this._sclv_rowDelegate = del;
123
123
 
124
124
  // last may be null on a new object
125
125
  if (last) {
126
126
  last.removeObserver('rowHeight', this, func);
127
127
  last.removeObserver('customRowHeightIndexes', this, func2);
128
128
  }
129
-
129
+
130
130
  if (!del) {
131
131
  throw "Internal Inconsistancy: ListView must always have CollectionRowDelegate";
132
132
  }
133
-
133
+
134
134
  del.addObserver('rowHeight', this, func);
135
135
  del.addObserver('customRowHeightIndexes', this, func2);
136
136
  this._sclv_rowHeightDidChange()._sclv_customRowHeightIndexesDidChange();
137
137
  return this ;
138
138
  }.observes('rowDelegate'),
139
139
 
140
- /** @private
140
+ /** @private
141
141
  called whenever the rowHeight changes. If the property actually changed
142
142
  then invalidate all row heights.
143
143
  */
144
144
  _sclv_rowHeightDidChange: function() {
145
145
  var del = this.get('rowDelegate'),
146
- height = del.get('rowHeight'),
146
+ height = del.get('rowHeight'),
147
147
  indexes;
148
-
148
+
149
149
  if (height === this._sclv_rowHeight) return this; // nothing to do
150
150
  this._sclv_rowHeight = height;
151
151
 
@@ -154,16 +154,16 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
154
154
  return this ;
155
155
  },
156
156
 
157
- /** @private
158
- called whenever the customRowHeightIndexes changes. If the property
157
+ /** @private
158
+ called whenever the customRowHeightIndexes changes. If the property
159
159
  actually changed then invalidate affected row heights.
160
160
  */
161
161
  _sclv_customRowHeightIndexesDidChange: function() {
162
162
  var del = this.get('rowDelegate'),
163
- indexes = del.get('customRowHeightIndexes'),
163
+ indexes = del.get('customRowHeightIndexes'),
164
164
  last = this._sclv_customRowHeightIndexes,
165
165
  func = this._sclv_customRowHeightIndexesContentDidChange;
166
-
166
+
167
167
  // nothing to do
168
168
  if ((indexes===last) || (last && last.isEqual(indexes))) return this;
169
169
 
@@ -171,12 +171,12 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
171
171
  if (last && this._sclv_isObservingCustomRowHeightIndexes) {
172
172
  last.removeObserver('[]', this, func);
173
173
  }
174
-
174
+
175
175
  // only observe new index set if it exists and it is not frozen.
176
176
  if (this._sclv_isObservingCustomRowHeightIndexes = indexes && !indexes.get('isFrozen')) {
177
177
  indexes.addObserver('[]', this, func);
178
178
  }
179
-
179
+
180
180
  this._sclv_customRowHeightIndexesContentDidChange();
181
181
  return this ;
182
182
  },
@@ -186,30 +186,30 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
186
186
  */
187
187
  _sclv_customRowHeightIndexesContentDidChange: function() {
188
188
  var del = this.get('rowDelegate'),
189
- indexes = del.get('customRowHeightIndexes'),
190
- last = this._sclv_customRowHeightIndexes,
189
+ indexes = del.get('customRowHeightIndexes'),
190
+ last = this._sclv_customRowHeightIndexes,
191
191
  changed;
192
192
 
193
193
  // compute the set to invalidate. the union of cur and last set
194
194
  if (indexes && last) {
195
195
  changed = indexes.copy().add(last);
196
196
  } else changed = indexes || last ;
197
- this._sclv_customRowHeightIndexes = indexes ? indexes.frozenCopy() : null;
197
+ this._sclv_customRowHeightIndexes = indexes ? indexes.frozenCopy() : null;
198
198
 
199
199
  // invalidate
200
200
  this.rowHeightDidChangeForIndexes(changed);
201
201
  return this ;
202
202
  },
203
-
204
-
203
+
204
+
205
205
  // ..........................................................
206
206
  // ROW PROPERTIES
207
- //
208
-
207
+ //
208
+
209
209
  /**
210
210
  Returns the top offset for the specified content index. This will take
211
211
  into account any custom row heights and group views.
212
-
212
+
213
213
  @param {Number} idx the content index
214
214
  @returns {Number} the row offset
215
215
  */
@@ -219,16 +219,16 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
219
219
  var del = this.get('rowDelegate'),
220
220
  rowHeight = del.get('rowHeight'),
221
221
  rowSpacing, ret, custom, cache, delta, max, content ;
222
-
222
+
223
223
  ret = idx * rowHeight;
224
224
 
225
225
  rowSpacing = this.get('rowSpacing');
226
- if(rowSpacing){
227
- ret += idx * rowSpacing;
228
- }
226
+ if(rowSpacing){
227
+ ret += idx * rowSpacing;
228
+ }
229
229
 
230
230
  if (del.customRowHeightIndexes && (custom=del.get('customRowHeightIndexes'))) {
231
-
231
+
232
232
  // prefill the cache with custom rows.
233
233
  cache = this._sclv_offsetCache;
234
234
  if (!cache) {
@@ -243,8 +243,8 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
243
243
  // moved down so that the cache is not marked as initialized until it actually is
244
244
  this._sclv_offsetCache = cache;
245
245
  }
246
-
247
- // now just get the delta for the last custom row before the current
246
+
247
+ // now just get the delta for the last custom row before the current
248
248
  // idx.
249
249
  delta = cache[idx];
250
250
  if (delta === undefined) {
@@ -258,21 +258,21 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
258
258
 
259
259
  ret += delta ;
260
260
  }
261
-
261
+
262
262
  return ret ;
263
263
  },
264
-
264
+
265
265
  /**
266
266
  Returns the row height for the specified content index. This will take
267
267
  into account custom row heights and group rows.
268
-
268
+
269
269
  @param {Number} idx content index
270
270
  @returns {Number} the row height
271
271
  */
272
272
  rowHeightForContentIndex: function(idx) {
273
273
  var del = this.get('rowDelegate'),
274
274
  ret, cache, content, indexes;
275
-
275
+
276
276
  if (del.customRowHeightIndexes && (indexes=del.get('customRowHeightIndexes'))) {
277
277
  cache = this._sclv_heightCache ;
278
278
  if (!cache) {
@@ -284,14 +284,14 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
284
284
  // moved down so that the cache is not marked as initialized until it actually is
285
285
  this._sclv_heightCache = cache;
286
286
  }
287
-
287
+
288
288
  ret = cache[idx];
289
289
  if (ret === undefined) ret = del.get('rowHeight');
290
290
  } else ret = del.get('rowHeight');
291
-
291
+
292
292
  return ret ;
293
293
  },
294
-
294
+
295
295
  /**
296
296
  Call this method whenever a row height has changed in one or more indexes.
297
297
  This will invalidate the row height cache and reload the content indexes.
@@ -299,28 +299,39 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
299
299
 
300
300
  This method is called automatically whenever you change the rowHeight
301
301
  or customRowHeightIndexes properties on the collectionRowDelegate.
302
-
303
- @param {SC.IndexSet|Number} indexes
302
+
303
+ @param {SC.IndexSet|Number} indexes
304
304
  @returns {SC.ListView} receiver
305
- */
305
+ */
306
306
  rowHeightDidChangeForIndexes: function(indexes) {
307
307
  var len = this.get('length');
308
308
 
309
309
  // clear any cached offsets
310
310
  this._sclv_heightCache = this._sclv_offsetCache = null;
311
-
311
+
312
312
  // find the smallest index changed; invalidate everything past it
313
313
  if (indexes && indexes.isIndexSet) indexes = indexes.get('min');
314
314
  this.reload(SC.IndexSet.create(indexes, len-indexes));
315
315
  return this ;
316
316
  },
317
-
317
+
318
+ /**
319
+ @private
320
+ When the length changes, so does the layout. CollectionView doesn't
321
+ know to do this, because it only asks for layout when it reloads--which
322
+ makes sense, as it is agnostic to any layout logic (for all it knows, the
323
+ items in the collection are not in a completely random order relative to layout)
324
+ */
325
+ _sclv_lengthDidChange: function() {
326
+ this.adjust(this.computeLayout());
327
+ }.observes('length'),
328
+
318
329
  // ..........................................................
319
330
  // SUBCLASS IMPLEMENTATIONS
320
- //
321
-
331
+ //
332
+
322
333
  /**
323
- The layout for a ListView is computed from the total number of rows
334
+ The layout for a ListView is computed from the total number of rows
324
335
  along with any custom row heights.
325
336
  */
326
337
  computeLayout: function() {
@@ -331,17 +342,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
331
342
  this.set('calculatedHeight',ret.minHeight);
332
343
  return ret ;
333
344
  },
334
-
345
+
335
346
  /**
336
347
  Computes the layout for a specific content index by combining the current
337
348
  row heights.
338
-
349
+
339
350
  @param {Number} contentIndex
340
351
  @returns {Hash} layout hash for the index provided
341
352
  */
342
353
  layoutForContentIndex: function(contentIndex) {
343
354
  var del = this.get('rowDelegate');
344
-
355
+
345
356
  return {
346
357
  top: this.rowOffsetForContentIndex(contentIndex),
347
358
  height: this.rowHeightForContentIndex(contentIndex) - del.get('rowPadding') * 2,
@@ -349,17 +360,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
349
360
  right: 0
350
361
  };
351
362
  },
352
-
363
+
353
364
  /**
354
- Override to return an IndexSet with the indexes that are at least
355
- partially visible in the passed rectangle. This method is used by the
356
- default implementation of computeNowShowing() to determine the new
365
+ Override to return an IndexSet with the indexes that are at least
366
+ partially visible in the passed rectangle. This method is used by the
367
+ default implementation of computeNowShowing() to determine the new
357
368
  nowShowing range after a scroll.
358
-
369
+
359
370
  Override this method to implement incremental rendering.
360
-
371
+
361
372
  The default simply returns the current content length.
362
-
373
+
363
374
  @param {Rect} rect the visible rect or a point
364
375
  @returns {SC.IndexSet} now showing indexes
365
376
  */
@@ -371,17 +382,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
371
382
  len = this.get('length'),
372
383
  offset, start, end;
373
384
 
374
- // estimate the starting row and then get actual offsets until we are
385
+ // estimate the starting row and then get actual offsets until we are
375
386
  // right.
376
387
  start = (top - (top % rowHeight)) / rowHeight;
377
388
  offset = this.rowOffsetForContentIndex(start);
378
-
389
+
379
390
  // go backwards until top of row is before top edge
380
391
  while(start>0 && offset>top) {
381
392
  start--;
382
393
  offset -= this.rowHeightForContentIndex(start);
383
394
  }
384
-
395
+
385
396
  // go forwards until bottom of row is after top edge
386
397
  offset += this.rowHeightForContentIndex(start);
387
398
  while(start<len && offset<=top) {
@@ -390,61 +401,53 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
390
401
  }
391
402
  if (start<0) start = 0;
392
403
  if (start>=len) start=len;
393
-
394
-
395
- // estimate the final row and then get the actual offsets until we are
404
+
405
+
406
+ // estimate the final row and then get the actual offsets until we are
396
407
  // right. - look at the offset of the _following_ row
397
408
  end = start + ((height - (height % rowHeight)) / rowHeight) ;
398
409
  if (end > len) end = len;
399
410
  offset = this.rowOffsetForContentIndex(end);
400
-
411
+
401
412
  // walk backwards until top of row is before or at bottom edge
402
413
  while(end>=start && offset>=bottom) {
403
414
  end--;
404
415
  offset -= this.rowHeightForContentIndex(end);
405
416
  }
406
-
417
+
407
418
  // go forwards until bottom of row is after bottom edge
408
419
  offset += this.rowHeightForContentIndex(end);
409
420
  while(end<len && offset<bottom) {
410
421
  end++;
411
422
  offset += this.rowHeightForContentIndex(end);
412
423
  }
413
-
424
+
414
425
  end++; // end should be after start
415
-
416
- // if height is greater than 0, on some platforms we should just render
417
- // to specific windows in order to minimize render time.
418
- // if (height > 0 && !SC.browser.msie) {
419
- // start = start - (start % 50);
420
- // if (start < 0) start = 0 ;
421
- // end = end - (end % 50) + 50;
422
- // }
423
-
426
+
424
427
  if (end<start) end = start;
425
428
  if (end>len) end = len ;
426
-
429
+
427
430
  // convert to IndexSet and return
428
431
  return SC.IndexSet.create(start, end-start);
429
432
  },
430
-
431
-
433
+
434
+
432
435
  // ..........................................................
433
436
  // DRAG AND ROP SUPPORT
434
- //
435
-
437
+ //
438
+
436
439
  /**
437
- Default view class used to draw an insertion point. The default
440
+ Default view class used to draw an insertion point. The default
438
441
  view will show a vertical line. Any view you create
439
442
  should expect an outlineLevel property set, which should impact your left
440
443
  offset.
441
-
444
+
442
445
  @field
443
446
  @type SC.View
444
447
  */
445
448
  insertionPointView: SC.View.extend({
446
449
  classNames: 'sc-list-insertion-point',
447
-
450
+
448
451
  /** @private */
449
452
  render: function(context, firstTime) {
450
453
  if (firstTime) context.push('<div class="anchor"></div>');
@@ -458,10 +461,10 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
458
461
  showInsertionPoint: function(itemView, dropOperation) {
459
462
  var view = this._insertionPointView;
460
463
  if (!view) {
461
- view = this._insertionPointView
464
+ view = this._insertionPointView
462
465
  = this.get('insertionPointView').create();
463
466
  }
464
-
467
+
465
468
  var index = itemView.get('contentIndex'),
466
469
  len = this.get('length'),
467
470
  layout = SC.clone(itemView.get('layout')),
@@ -470,7 +473,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
470
473
  group;
471
474
 
472
475
  // show item indented if we are inserting at the end and the last item
473
- // is a group item. This is a special case that should really be
476
+ // is a group item. This is a special case that should really be
474
477
  // converted into a more general protocol.
475
478
  if ((index >= len) && index>0) {
476
479
  group = this.itemViewForContentIndex(len-1);
@@ -479,9 +482,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
479
482
  indent = group.get('outlineIndent');
480
483
  }
481
484
  }
482
-
485
+
483
486
  if (SC.none(level)) level = -1;
484
-
487
+
485
488
  if (dropOperation & SC.DROP_ON) {
486
489
  this.hideInsertionPoint();
487
490
  itemView.set('isSelected', YES);
@@ -492,9 +495,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
492
495
  this._lastDropOnView.set('isSelected', NO);
493
496
  this._lastDropOnView = null;
494
497
  }
495
-
498
+
496
499
  if (dropOperation & SC.DROP_AFTER) layout.top += layout.height;
497
-
500
+
498
501
  layout.height = 2;
499
502
  layout.right = 0;
500
503
  layout.left = ((level+1) * indent) + 12;
@@ -504,7 +507,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
504
507
  this.appendChild(view);
505
508
  }
506
509
  },
507
-
510
+
508
511
  /**
509
512
  @see SC.CollectionView#hideInsertionPoint
510
513
  */
@@ -513,17 +516,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
513
516
  this._lastDropOnView.set('isSelected', NO);
514
517
  this._lastDropOnView = null;
515
518
  }
516
-
519
+
517
520
  var view = this._insertionPointView;
518
521
  if (view) view.removeFromParent().destroy();
519
522
  this._insertionPointView = null;
520
523
  },
521
524
 
522
525
  /**
523
- Compute the insertion index for the passed location. The location is
526
+ Compute the insertion index for the passed location. The location is
524
527
  a point, relative to the top/left corner of the receiver view. The return
525
528
  value is an index plus a dropOperation, which is computed as such:
526
-
529
+
527
530
  - if outlining is not used and you are within 5px of an edge, DROP_BEFORE
528
531
  the item after the edge.
529
532
  - if outlining is used and you are within 5px of an edge and the previous
@@ -531,7 +534,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
531
534
  the previous item if you are closer to that outline level.
532
535
  - if dropOperation = SC.DROP_ON and you are over the middle of a row, then
533
536
  use DROP_ON.
534
-
537
+
535
538
  @see SC.CollectionView.insertionIndexForLocation
536
539
  */
537
540
  insertionIndexForLocation: function(loc, dropOperation) {
@@ -542,7 +545,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
542
545
  min, max, diff, clevel, cindent, plevel, pindent, itemView, pgroup;
543
546
 
544
547
  // if there are no indexes in the rect, then we need to either insert
545
- // before the top item or after the last item. Figure that out by
548
+ // before the top item or after the last item. Figure that out by
546
549
  // computing both.
547
550
  if (SC.none(index) || index<0) {
548
551
  if ((len===0) || (loc.y <= this.rowOffsetForContentIndex(0))) index = 0;
@@ -552,23 +555,20 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
552
555
  // figure the range of the row the location must be within.
553
556
  min = this.rowOffsetForContentIndex(index);
554
557
  max = min + this.rowHeightForContentIndex(index);
555
-
558
+
556
559
  // now we know which index we are in. if dropOperation is DROP_ON, figure
557
560
  // if we can drop on or not.
558
561
  if (dropOperation == SC.DROP_ON) {
559
562
  // editable size - reduce height by a bit to handle dropping
560
563
  if (this.get('isEditable')) diff=Math.min(Math.floor((max-min)*0.2),5);
561
564
  else diff = 0;
562
-
565
+
563
566
  // if we're inside the range, then DROP_ON
564
567
  if (loc.y >= (min+diff) || loc.y <= (max+diff)) {
565
568
  return [index, SC.DROP_ON];
566
569
  }
567
570
  }
568
-
569
- // ok, now if we are in last 10px, go to next item.
570
- if ((index<len) && (loc.y >= max-10)) index++;
571
-
571
+
572
572
  // finally, let's decide if we want to actually insert before/after. Only
573
573
  // matters if we are using outlining.
574
574
  if (index>0) {
@@ -576,7 +576,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
576
576
  itemView = this.itemViewForContentIndex(index-1);
577
577
  pindent = (itemView ? itemView.get('outlineIndent') : 0) || 0;
578
578
  plevel = itemView ? itemView.get('outlineLevel') : 0;
579
-
579
+
580
580
  if (index<len) {
581
581
  itemView = this.itemViewForContentIndex(index);
582
582
  clevel = itemView ? itemView.get('outlineLevel') : 0;
@@ -584,15 +584,15 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
584
584
  cindent *= clevel;
585
585
  } else {
586
586
  clevel = itemView.get('isGroupView') ? 1 : 0; // special case...
587
- cindent = pindent * clevel;
587
+ cindent = pindent * clevel;
588
588
  }
589
589
 
590
590
  pindent *= plevel;
591
591
 
592
- // if indent levels are different, then try to figure out which level
592
+ // if indent levels are different, then try to figure out which level
593
593
  // it should be on.
594
594
  if ((clevel !== plevel) && (cindent !== pindent)) {
595
-
595
+
596
596
  // use most inner indent as boundary
597
597
  if (pindent > cindent) {
598
598
  index--;
@@ -601,9 +601,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
601
601
  }
602
602
  }
603
603
 
604
- // we do not support dropping before a group item. If dropping before
604
+ // we do not support dropping before a group item. If dropping before
605
605
  // a group item, always try to instead drop after the previous item. If
606
- // the previous item is also a group then, well, dropping is just not
606
+ // the previous item is also a group then, well, dropping is just not
607
607
  // allowed. Note also that dropping at 0, first item must not be group
608
608
  // and dropping at length, last item must not be a group
609
609
  //
@@ -612,9 +612,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
612
612
  if (!itemView || itemView.get('isGroupView')) {
613
613
  if (index>0) {
614
614
  itemView = this.itemViewForContentIndex(index-1);
615
-
615
+
616
616
  // don't allow a drop if the previous item is a group view and we're
617
- // insert before the end. For the end, allow the drop if the
617
+ // insert before the end. For the end, allow the drop if the
618
618
  // previous item is a group view but OPEN.
619
619
  if (!itemView.get('isGroupView') || (itemView.get('disclosureState') === SC.BRANCH_OPEN)) {
620
620
  index = index-1;
@@ -623,14 +623,14 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
623
623
 
624
624
  } else index = -1;
625
625
  }
626
-
626
+
627
627
  if (index<0) dropOperation = SC.DRAG_NONE ;
628
- }
629
-
628
+ }
629
+
630
630
  // return whatever we came up with
631
631
  return [index, dropOperation];
632
632
  },
633
-
633
+
634
634
  /** @private */
635
635
  mouseWheel: function(evt) {
636
636
  // The following commits changes in a list item that is being edited,
@@ -641,17 +641,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
641
641
  SC.InlineTextFieldView.commitEditing();
642
642
  }
643
643
  }
644
- return NO ;
644
+ return NO ;
645
645
  },
646
-
646
+
647
647
  // ..........................................................
648
648
  // INTERNAL SUPPORT
649
- //
649
+ //
650
650
 
651
651
  /** @private */
652
652
  init: function() {
653
653
  sc_super();
654
654
  this._sclv_rowDelegateDidChange();
655
- }
656
-
655
+ }
656
+
657
657
  });