sproutcore 1.6.0.beta.3-java → 1.6.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (633) hide show
  1. data/CHANGELOG +70 -0
  2. data/{History.txt → History.rdoc} +0 -0
  3. data/{README.txt → README.rdoc} +3 -2
  4. data/Rakefile +213 -10
  5. data/{Todo.txt → Todo.rdoc} +0 -0
  6. data/VERSION.yml +1 -1
  7. data/bin/sc-docs +6 -1
  8. data/lib/Buildfile +5 -1
  9. data/lib/buildtasks/manifest.rake +14 -1
  10. data/lib/buildtasks/target.rake +20 -23
  11. data/lib/frameworks/sproutcore/Buildfile +8 -3
  12. data/lib/frameworks/sproutcore/CHANGELOG.md +364 -1
  13. data/lib/frameworks/sproutcore/README.md +1 -1
  14. data/lib/frameworks/sproutcore/apps/test_controls/controllers/select.js +12 -0
  15. data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +19 -5
  16. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +9 -0
  17. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +243 -199
  18. data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +250 -172
  19. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +29 -0
  20. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +5 -0
  21. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +21 -1
  22. data/lib/frameworks/sproutcore/frameworks/core_foundation/controls/button.js +6 -2
  23. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +2 -42
  24. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +38 -15
  25. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +6 -4
  26. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +1 -1
  27. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +11 -6
  28. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +55 -20
  29. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +2 -0
  30. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +26 -20
  31. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +37 -21
  32. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +2 -7
  33. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +7 -7
  34. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +157 -5
  35. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +2 -2
  36. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +7 -6
  37. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +29 -15
  39. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +8 -8
  40. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +162 -1
  41. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +3 -56
  42. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +24 -8
  43. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +42 -0
  44. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +59 -0
  45. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controls/button.js +39 -57
  46. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +41 -1
  47. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +19 -2
  48. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +16 -1
  49. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +5 -3
  50. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +32 -0
  51. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +135 -0
  52. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +29 -18
  53. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -0
  54. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +18 -2
  55. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +10 -6
  56. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +414 -1
  57. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view.js +1 -1
  58. data/lib/frameworks/sproutcore/frameworks/core_foundation/{system → views}/bindable_span.js +2 -1
  59. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +112 -40
  60. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +13 -7
  61. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +2 -1
  62. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +245 -67
  63. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +17 -9
  64. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +8 -18
  65. data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +8 -2
  66. data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +1 -1
  67. data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +1 -1
  68. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +15 -8
  69. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +12 -2
  70. data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +296 -0
  71. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +3 -3
  72. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +330 -326
  73. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -1
  74. data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +26 -5
  75. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +1 -1
  76. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +69 -58
  77. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +614 -614
  78. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/data_source.js +203 -0
  79. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +3 -1
  80. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +44 -0
  81. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +2 -0
  82. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +2 -0
  83. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +20 -13
  84. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +76 -47
  85. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +30 -30
  86. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +74 -53
  87. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +0 -1
  88. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +24 -24
  89. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/connectDataSource.js +31 -0
  90. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +1177 -0
  91. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +212 -182
  92. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +6 -67
  93. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +1 -1
  94. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
  95. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
  96. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +13 -15
  97. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +41 -12
  98. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +9 -0
  99. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +6 -3
  100. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +3 -3
  101. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +3 -3
  102. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +1 -1
  103. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +1 -1
  104. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +1 -1
  105. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +1 -1
  106. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +1 -1
  107. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +3 -2
  108. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +12 -2
  109. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +1 -1
  110. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +1 -1
  111. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +1 -1
  112. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +1 -1
  113. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +2 -2
  114. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +1 -1
  115. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -1
  116. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +1 -1
  117. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +1 -1
  118. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +1 -1
  119. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +1 -1
  120. data/lib/frameworks/sproutcore/frameworks/desktop/resources/alert.css +49 -0
  121. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/a_sample_image.jpg +0 -0
  122. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/apple-logo1.jpeg +0 -0
  123. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/iframe.html +0 -0
  124. data/lib/frameworks/sproutcore/frameworks/desktop/resources/disclosure.css +20 -0
  125. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/drag.css +1 -1
  126. data/lib/frameworks/sproutcore/frameworks/desktop/resources/icons.css +214 -0
  127. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/cap.png +0 -0
  128. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/downbutton.png +0 -0
  129. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-16.png +0 -0
  130. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-24.png +0 -0
  131. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-48.png +0 -0
  132. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-bookmark-16.png +0 -0
  133. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-bookmark-24.png +0 -0
  134. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-cancel-24.png +0 -0
  135. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-document-16.png +0 -0
  136. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-document-24.png +0 -0
  137. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-down-24.png +0 -0
  138. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
  139. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-favorite-16.png +0 -0
  140. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-favorite-24.png +0 -0
  141. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-folder-16.png +0 -0
  142. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-folder-24.png +0 -0
  143. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-group-16.png +0 -0
  144. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-group-24.png +0 -0
  145. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-help-16.png +0 -0
  146. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-help-24.png +0 -0
  147. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-16.png +0 -0
  148. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-24.png +0 -0
  149. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-48.png +0 -0
  150. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-left-24.png +0 -0
  151. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-options-16.png +0 -0
  152. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-options-24.png +0 -0
  153. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-redo-24.png +0 -0
  154. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-right-24.png +0 -0
  155. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-tools-24.png +0 -0
  156. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-trash-16.png +0 -0
  157. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-trash-24.png +0 -0
  158. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-undo-24.png +0 -0
  159. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-up-24.png +0 -0
  160. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-user-16.png +0 -0
  161. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-user-24.png +0 -0
  162. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-bottom.png +0 -0
  163. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-center.png +0 -0
  164. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-top.png +0 -0
  165. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/track.png +0 -0
  166. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/upbutton.png +0 -0
  167. data/lib/frameworks/sproutcore/frameworks/desktop/resources/list_item.css +145 -0
  168. data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu.css +10 -0
  169. data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu_item_view.css +88 -0
  170. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/modal.css +3 -4
  171. data/lib/frameworks/sproutcore/frameworks/desktop/resources/panel.css +91 -0
  172. data/lib/frameworks/sproutcore/frameworks/desktop/resources/picker.css +37 -0
  173. data/lib/frameworks/sproutcore/frameworks/desktop/resources/progress.css +29 -0
  174. data/lib/frameworks/sproutcore/frameworks/desktop/resources/radio.css +11 -0
  175. data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +122 -0
  176. data/lib/frameworks/sproutcore/frameworks/desktop/resources/separator.css +20 -0
  177. data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +34 -0
  178. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/split.css +0 -0
  179. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/split_divider.css +0 -0
  180. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/tab.css +0 -0
  181. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/toolbar.css +0 -0
  182. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/touch-scroller.css +13 -13
  183. data/lib/frameworks/sproutcore/frameworks/desktop/resources/well.css +65 -0
  184. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +58 -23
  185. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +20 -1
  186. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +121 -103
  187. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +34 -7
  188. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/static_content.js +3 -2
  189. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +1 -3
  190. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +20 -1
  191. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +14 -15
  192. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +43 -16
  193. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +717 -700
  194. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +2 -2
  195. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +11 -1
  196. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +16 -6
  197. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +4 -7
  198. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +0 -1
  199. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +49 -7
  200. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +9 -2
  201. data/lib/frameworks/sproutcore/frameworks/desktop/{panes → views}/select_button.js +52 -0
  202. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +7 -3
  203. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +4 -26
  204. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +46 -49
  205. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +20 -19
  206. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
  207. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +249 -249
  208. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/edit_mode.js +13 -5
  209. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/emptiness.js +53 -37
  210. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form.js +2 -1
  211. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form_row.js +3 -11
  212. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/edit_mode.js +53 -0
  213. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/emptiness.js +114 -0
  214. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form.js +174 -6
  215. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_row.js +86 -6
  216. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +98 -126
  217. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form_row.js +96 -97
  218. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +2 -1
  219. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +20 -36
  220. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +121 -0
  221. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +90 -0
  222. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/mixins/select_view_menu.js +139 -0
  223. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/render_delegates/select_button.js +14 -0
  224. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/ext/menu_resizing.js +25 -0
  225. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/bindings.js +43 -0
  226. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/check_selected.js +32 -0
  227. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/menu_setup.js +40 -0
  228. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/show_menu.js +45 -0
  229. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/menu_width.js +49 -0
  230. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/selected_item.js +191 -0
  231. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +264 -0
  232. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +450 -0
  233. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +14 -6
  234. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +1 -1
  235. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split.js +1 -1
  236. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split_divider.js +1 -1
  237. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +9 -0
  238. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +3 -2
  239. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +2 -2
  240. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +16 -19
  241. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +4 -7
  242. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +1 -1
  243. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +85 -16
  244. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
  245. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +1 -1
  246. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +1 -1
  247. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +1 -1
  248. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +4 -2
  249. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +2 -0
  250. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +1 -1
  251. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +1 -1
  252. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +13 -13
  253. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/benchmark.css +0 -0
  254. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/blank.gif +0 -0
  255. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/bootstrap.rhtml +0 -0
  256. data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +36 -0
  257. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/checkbox_view.css +0 -0
  258. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/debug/control-test-pane.css +0 -0
  259. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/favicon.ico +0 -0
  260. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-logo.png +0 -0
  261. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-landscape.jpg +0 -0
  262. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-landscape.png +0 -0
  263. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-portrait.jpg +0 -0
  264. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-portrait.png +0 -0
  265. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup.png +0 -0
  266. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore.png +0 -0
  267. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/inline_editor.css +0 -0
  268. data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +47 -0
  269. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/radio_view.css +0 -0
  270. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/static_layout.css +1 -1
  271. data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +125 -0
  272. data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +5 -1
  273. data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +4 -2
  274. data/lib/frameworks/sproutcore/frameworks/foundation/system/math.js +2 -1
  275. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +13 -0
  276. data/lib/frameworks/sproutcore/frameworks/foundation/system/string.js +0 -43
  277. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +11 -11
  278. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +912 -0
  279. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +23 -0
  280. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +36 -7
  281. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +58 -4
  282. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +4 -4
  283. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +1 -3
  284. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +17 -6
  285. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +0 -15
  286. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +3 -3
  287. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +30 -19
  288. data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1 -1
  289. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +2 -76
  290. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +3348 -1591
  291. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +6 -3
  292. data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +11 -0
  293. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +38 -12
  294. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/flatten.js +24 -0
  295. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +2 -1
  296. data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +5 -5
  297. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +21 -2
  298. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +3 -2
  299. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +1 -1
  300. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1 -1
  301. data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +2 -2
  302. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +14 -14
  303. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +4 -1
  304. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +0 -3
  305. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +4 -4
  306. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +4 -4
  307. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
  308. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +3 -3
  309. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +15 -16
  310. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +6 -2
  311. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +10 -5
  312. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/requiredObjectForPropertyPath.js +29 -0
  313. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +98 -0
  314. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +30 -0
  315. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +17 -0
  316. data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +4 -73
  317. data/lib/frameworks/sproutcore/frameworks/statechart/debug/sequence_matcher.js +189 -0
  318. data/lib/frameworks/sproutcore/frameworks/statechart/ext/function.js +122 -0
  319. data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +88 -0
  320. data/lib/frameworks/sproutcore/frameworks/statechart/system/empty_state.js +34 -0
  321. data/lib/frameworks/sproutcore/frameworks/statechart/system/history_state.js +97 -0
  322. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +16 -191
  323. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +17 -79
  324. data/lib/frameworks/sproutcore/frameworks/statechart/tests/debug/sequence_matcher.js +464 -0
  325. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +31 -11
  326. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/with_concurrent_states.js +6 -4
  327. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/advanced.js +40 -6
  328. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/basic.js +22 -2
  329. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/intermediate.js +44 -3
  330. data/lib/frameworks/sproutcore/frameworks/testing/core.js +61 -9
  331. data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/additions.css +0 -0
  332. data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/runner.css +10 -2
  333. data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/testsuite.css +0 -0
  334. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +66 -27
  335. data/lib/frameworks/sproutcore/frameworks/testing/tests/spy_on.js +41 -0
  336. data/lib/frameworks/sproutcore/frameworks/testing/tests/stub_method.js +9 -0
  337. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +80 -0
  338. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/core.css +20 -0
  339. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/fonts.css +39 -0
  340. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +126 -0
  341. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +57 -0
  342. data/lib/frameworks/sproutcore/lib/index.rhtml +8 -4
  343. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
  344. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
  345. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
  346. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
  347. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
  348. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
  349. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
  350. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
  351. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
  352. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
  353. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
  354. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
  355. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
  356. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
  357. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
  358. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
  359. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
  360. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
  361. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
  362. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
  363. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
  364. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
  365. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
  366. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
  367. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
  368. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +13 -4
  369. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +16 -14
  370. data/lib/frameworks/sproutcore/themes/ace/resources/form/form.css +9 -0
  371. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +3 -1
  372. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
  373. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +1 -1
  374. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +1 -1
  375. data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +1 -1
  376. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +1 -1
  377. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/panel.js +1 -1
  378. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +2 -0
  379. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +1 -1
  380. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/well.js +1 -1
  381. data/lib/gen/app/templates/apps/@target_name@/Buildfile +1 -4
  382. data/lib/gen/app/templates/apps/@target_name@/core.js +1 -4
  383. data/lib/gen/app/templates/apps/@target_name@/main.js +1 -4
  384. data/lib/gen/app/templates/apps/@target_name@/resources/main_page.js +1 -4
  385. data/lib/gen/app/templates/apps/@target_name@/theme.js +1 -4
  386. data/lib/gen/controller/templates/controllers/{@filename@.js → @filename@_controller.js} +1 -4
  387. data/lib/gen/controller/templates/tests/controllers/{@filename@.js → @filename@_test.js} +1 -4
  388. data/lib/gen/data-source/templates/data_sources/{@filename@.js → @filename@_data_source.js} +1 -4
  389. data/lib/gen/design/templates/resources/@filename@.js +1 -4
  390. data/lib/gen/framework/templates/frameworks/@target_name@/core.js +1 -4
  391. data/lib/gen/framework/templates/frameworks/@target_name@/english.lproj/strings.js +1 -4
  392. data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +1 -4
  393. data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +2 -0
  394. data/lib/gen/html_project/templates/@filename@/Buildfile +1 -4
  395. data/lib/gen/html_project/templates/@filename@/README +1 -4
  396. data/lib/gen/language/Buildfile +1 -1
  397. data/lib/gen/language/templates/@filename@/strings.js +1 -4
  398. data/lib/gen/model/templates/fixtures/{@filename@.js → @filename@_fixtures.js} +2 -5
  399. data/lib/gen/model/templates/models/{@filename@.js → @filename@_model.js} +1 -4
  400. data/lib/gen/model/templates/tests/models/{@filename@.js → @filename@_test.js} +1 -4
  401. data/lib/gen/page/templates/pages/@target_name@/Buildfile +1 -4
  402. data/lib/gen/page/templates/pages/@target_name@/core.js +1 -4
  403. data/lib/gen/page/templates/pages/@target_name@/en.lproj/strings.js +1 -4
  404. data/lib/gen/page/templates/pages/@target_name@/resources/body.css +3 -1
  405. data/lib/gen/project/templates/@filename@/Buildfile +1 -4
  406. data/lib/gen/project/templates/@filename@/README +1 -5
  407. data/lib/gen/responder/templates/states/{@filename@.js → @filename@_state.js} +1 -4
  408. data/lib/gen/test/templates/tests/{@filename@.js → @filename@_test.js} +1 -4
  409. data/lib/gen/theme/templates/themes/@target_name@/resources/theme_styles.css +1 -5
  410. data/lib/gen/theme/templates/themes/@target_name@/theme.js +1 -4
  411. data/lib/gen/view/templates/tests/views/{@filename@.js → @filename@_test.js} +1 -4
  412. data/lib/gen/view/templates/views/{@filename@.js → @filename@_view.js} +1 -4
  413. data/lib/sproutcore.rb +5 -15
  414. data/lib/sproutcore/builders/base.rb +5 -1
  415. data/lib/sproutcore/builders/handlebars.rb +12 -1
  416. data/lib/sproutcore/builders/module.rb +2 -2
  417. data/lib/sproutcore/buildfile/string_ext.rb +0 -4
  418. data/lib/sproutcore/helpers/cssmin.rb +44 -59
  419. data/lib/sproutcore/helpers/static_helper.rb +4 -2
  420. data/lib/sproutcore/helpers/text_helper.rb +11 -13
  421. data/lib/sproutcore/models/generator.rb +22 -0
  422. data/lib/sproutcore/models/manifest.rb +4 -4
  423. data/lib/sproutcore/models/manifest_entry.rb +1 -0
  424. data/lib/sproutcore/models/target.rb +3 -107
  425. data/lib/sproutcore/rack.rb +0 -1
  426. data/lib/sproutcore/rack/builder.rb +3 -0
  427. data/lib/sproutcore/rack/dev.rb +0 -1
  428. data/lib/sproutcore/rack/proxy.rb +240 -93
  429. data/lib/sproutcore/rack/service.rb +1 -1
  430. data/lib/sproutcore/render_engines/haml.rb +2 -5
  431. data/lib/sproutcore/tools.rb +11 -11
  432. data/lib/sproutcore/tools/build.rb +2 -0
  433. data/lib/sproutcore/tools/docs.rb +2 -37
  434. data/lib/sproutcore/tools/init.rb +10 -22
  435. data/lib/sproutcore/tools/manifest.rb +21 -22
  436. data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +21 -1
  437. data/spec/buildtasks/target_spec.rb +9 -0
  438. data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -0
  439. data/spec/fixtures/builder_tests/apps/handlebars_test/{template.handlebars → templates/template.handlebars} +2 -0
  440. data/{lib/doc_templates/sproutcore/allclasses.tmpl → spec/fixtures/ordered_entries/apps/template_style/a.js} +0 -0
  441. data/spec/fixtures/{real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER → ordered_entries/apps/template_style/template_style.js} +0 -0
  442. data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +1 -1
  443. data/spec/lib/builders/handlebars_spec.rb +10 -4
  444. data/spec/lib/buildfile_commands/build_task_spec.rb +1 -1
  445. data/spec/lib/tools/manifest_spec.rb +11 -0
  446. data/sproutcore.gemspec +8 -7
  447. data/vendor/chance/lib/chance/instance.rb +8 -9
  448. metadata +167 -266
  449. data/lib/doc_templates/jsdoc/allclasses.tmpl +0 -17
  450. data/lib/doc_templates/jsdoc/allfiles.tmpl +0 -56
  451. data/lib/doc_templates/jsdoc/class.tmpl +0 -487
  452. data/lib/doc_templates/jsdoc/index.tmpl +0 -38
  453. data/lib/doc_templates/jsdoc/publish.js +0 -170
  454. data/lib/doc_templates/jsdoc/static/default.css +0 -162
  455. data/lib/doc_templates/jsdoc/static/header.html +0 -2
  456. data/lib/doc_templates/jsdoc/static/index.html +0 -19
  457. data/lib/doc_templates/jsdoc/symbol.tmpl +0 -35
  458. data/lib/doc_templates/sproutcore/allfiles.tmpl +0 -56
  459. data/lib/doc_templates/sproutcore/class.tmpl +0 -674
  460. data/lib/doc_templates/sproutcore/classes-json.tmpl +0 -55
  461. data/lib/doc_templates/sproutcore/index.tmpl +0 -62
  462. data/lib/doc_templates/sproutcore/publish.js +0 -346
  463. data/lib/doc_templates/sproutcore/static/default.css +0 -258
  464. data/lib/doc_templates/sproutcore/static/header.html +0 -2
  465. data/lib/doc_templates/sproutcore/static/index.html +0 -19
  466. data/lib/doc_templates/sproutcore/symbol.tmpl +0 -35
  467. data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/core.css +0 -378
  468. data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/view.css +0 -57
  469. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +0 -56
  470. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +0 -73
  471. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +0 -916
  472. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
  473. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +0 -185
  474. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +0 -12
  475. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +0 -101
  476. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +0 -91
  477. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +0 -35
  478. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +0 -33
  479. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +0 -10
  480. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +0 -132
  481. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +0 -19
  482. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +0 -69
  483. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +0 -14
  484. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/well.css +0 -71
  485. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/default_styles.css +0 -5
  486. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/strings.js +0 -15
  487. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_checkbox_field.js +0 -17
  488. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_field.js +0 -17
  489. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_label.js +0 -17
  490. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_radio_field.js +0 -17
  491. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_text_field.js +0 -17
  492. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +0 -40
  493. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
  494. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +0 -47
  495. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +0 -146
  496. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +0 -55
  497. data/lib/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +0 -69
  498. data/lib/sproutcore/rack/docs.rb +0 -24
  499. data/vendor/jsdoc/README.txt +0 -151
  500. data/vendor/jsdoc/app/frame.js +0 -33
  501. data/vendor/jsdoc/app/frame/Chain.js +0 -102
  502. data/vendor/jsdoc/app/frame/Dumper.js +0 -144
  503. data/vendor/jsdoc/app/frame/Hash.js +0 -47
  504. data/vendor/jsdoc/app/frame/Link.js +0 -142
  505. data/vendor/jsdoc/app/frame/Namespace.js +0 -10
  506. data/vendor/jsdoc/app/frame/Opt.js +0 -134
  507. data/vendor/jsdoc/app/frame/Reflection.js +0 -26
  508. data/vendor/jsdoc/app/frame/String.js +0 -93
  509. data/vendor/jsdoc/app/frame/Testrun.js +0 -129
  510. data/vendor/jsdoc/app/handlers/FOODOC.js +0 -26
  511. data/vendor/jsdoc/app/handlers/XMLDOC.js +0 -26
  512. data/vendor/jsdoc/app/handlers/XMLDOC/DomReader.js +0 -159
  513. data/vendor/jsdoc/app/handlers/XMLDOC/XMLDoc.js +0 -16
  514. data/vendor/jsdoc/app/handlers/XMLDOC/XMLParse.js +0 -292
  515. data/vendor/jsdoc/app/lib/JSDOC.js +0 -98
  516. data/vendor/jsdoc/app/lib/JSDOC/DocComment.js +0 -200
  517. data/vendor/jsdoc/app/lib/JSDOC/DocTag.js +0 -294
  518. data/vendor/jsdoc/app/lib/JSDOC/JsDoc.js +0 -162
  519. data/vendor/jsdoc/app/lib/JSDOC/JsPlate.js +0 -100
  520. data/vendor/jsdoc/app/lib/JSDOC/Lang.js +0 -144
  521. data/vendor/jsdoc/app/lib/JSDOC/Parser.js +0 -109
  522. data/vendor/jsdoc/app/lib/JSDOC/PluginManager.js +0 -33
  523. data/vendor/jsdoc/app/lib/JSDOC/Symbol.js +0 -681
  524. data/vendor/jsdoc/app/lib/JSDOC/SymbolSet.js +0 -226
  525. data/vendor/jsdoc/app/lib/JSDOC/TextStream.js +0 -41
  526. data/vendor/jsdoc/app/lib/JSDOC/Token.js +0 -18
  527. data/vendor/jsdoc/app/lib/JSDOC/TokenReader.js +0 -332
  528. data/vendor/jsdoc/app/lib/JSDOC/TokenStream.js +0 -133
  529. data/vendor/jsdoc/app/lib/JSDOC/Util.js +0 -32
  530. data/vendor/jsdoc/app/lib/JSDOC/Walker.js +0 -453
  531. data/vendor/jsdoc/app/main.js +0 -74
  532. data/vendor/jsdoc/app/plugins/commentSrcJson.js +0 -19
  533. data/vendor/jsdoc/app/plugins/frameworkPrototype.js +0 -16
  534. data/vendor/jsdoc/app/plugins/functionCall.js +0 -10
  535. data/vendor/jsdoc/app/plugins/publishSrcHilite.js +0 -62
  536. data/vendor/jsdoc/app/plugins/sproutcoreTags.js +0 -26
  537. data/vendor/jsdoc/app/plugins/symbolLink.js +0 -9
  538. data/vendor/jsdoc/app/plugins/tagParamConfig.js +0 -31
  539. data/vendor/jsdoc/app/plugins/tagSynonyms.js +0 -43
  540. data/vendor/jsdoc/app/run.js +0 -346
  541. data/vendor/jsdoc/app/t/TestDoc.js +0 -144
  542. data/vendor/jsdoc/app/t/runner.js +0 -13
  543. data/vendor/jsdoc/app/test.js +0 -304
  544. data/vendor/jsdoc/app/test/addon.js +0 -24
  545. data/vendor/jsdoc/app/test/anon_inner.js +0 -14
  546. data/vendor/jsdoc/app/test/augments.js +0 -31
  547. data/vendor/jsdoc/app/test/augments2.js +0 -26
  548. data/vendor/jsdoc/app/test/borrows.js +0 -41
  549. data/vendor/jsdoc/app/test/borrows2.js +0 -23
  550. data/vendor/jsdoc/app/test/config.js +0 -22
  551. data/vendor/jsdoc/app/test/constructs.js +0 -18
  552. data/vendor/jsdoc/app/test/encoding.js +0 -10
  553. data/vendor/jsdoc/app/test/encoding_other.js +0 -12
  554. data/vendor/jsdoc/app/test/functions_anon.js +0 -39
  555. data/vendor/jsdoc/app/test/functions_nested.js +0 -33
  556. data/vendor/jsdoc/app/test/global.js +0 -13
  557. data/vendor/jsdoc/app/test/globals.js +0 -25
  558. data/vendor/jsdoc/app/test/ignore.js +0 -10
  559. data/vendor/jsdoc/app/test/inner.js +0 -16
  560. data/vendor/jsdoc/app/test/jsdoc_test.js +0 -477
  561. data/vendor/jsdoc/app/test/lend.js +0 -33
  562. data/vendor/jsdoc/app/test/memberof.js +0 -20
  563. data/vendor/jsdoc/app/test/memberof_constructor.js +0 -15
  564. data/vendor/jsdoc/app/test/name.js +0 -19
  565. data/vendor/jsdoc/app/test/namespace_nested.js +0 -23
  566. data/vendor/jsdoc/app/test/nocode.js +0 -13
  567. data/vendor/jsdoc/app/test/oblit_anon.js +0 -20
  568. data/vendor/jsdoc/app/test/overview.js +0 -20
  569. data/vendor/jsdoc/app/test/param_inline.js +0 -37
  570. data/vendor/jsdoc/app/test/params_optional.js +0 -8
  571. data/vendor/jsdoc/app/test/prototype.js +0 -17
  572. data/vendor/jsdoc/app/test/prototype_nested.js +0 -9
  573. data/vendor/jsdoc/app/test/prototype_oblit.js +0 -13
  574. data/vendor/jsdoc/app/test/prototype_oblit_constructor.js +0 -24
  575. data/vendor/jsdoc/app/test/public.js +0 -10
  576. data/vendor/jsdoc/app/test/shared.js +0 -42
  577. data/vendor/jsdoc/app/test/shared2.js +0 -2
  578. data/vendor/jsdoc/app/test/shortcuts.js +0 -22
  579. data/vendor/jsdoc/app/test/static_this.js +0 -13
  580. data/vendor/jsdoc/app/test/synonyms.js +0 -23
  581. data/vendor/jsdoc/app/test/tosource.js +0 -23
  582. data/vendor/jsdoc/app/test/variable_redefine.js +0 -14
  583. data/vendor/jsdoc/changes.txt +0 -47
  584. data/vendor/jsdoc/conf/sample.conf +0 -31
  585. data/vendor/jsdoc/java/build.xml +0 -36
  586. data/vendor/jsdoc/java/build_1.4.xml +0 -36
  587. data/vendor/jsdoc/java/classes/js.jar +0 -0
  588. data/vendor/jsdoc/java/src/JsDebugRun.java +0 -21
  589. data/vendor/jsdoc/java/src/JsRun.java +0 -21
  590. data/vendor/jsdoc/jsdebug.jar +0 -0
  591. data/vendor/jsdoc/jsrun.jar +0 -0
  592. data/vendor/jsdoc/t/TestDoc.js +0 -144
  593. data/vendor/jsdoc/t/runner.js +0 -13
  594. data/vendor/jsdoc/test.js +0 -304
  595. data/vendor/jsdoc/test/addon.js +0 -24
  596. data/vendor/jsdoc/test/anon_inner.js +0 -14
  597. data/vendor/jsdoc/test/augments.js +0 -31
  598. data/vendor/jsdoc/test/augments2.js +0 -26
  599. data/vendor/jsdoc/test/borrows.js +0 -41
  600. data/vendor/jsdoc/test/borrows2.js +0 -23
  601. data/vendor/jsdoc/test/config.js +0 -22
  602. data/vendor/jsdoc/test/constructs.js +0 -18
  603. data/vendor/jsdoc/test/encoding.js +0 -10
  604. data/vendor/jsdoc/test/encoding_other.js +0 -12
  605. data/vendor/jsdoc/test/functions_anon.js +0 -39
  606. data/vendor/jsdoc/test/functions_nested.js +0 -33
  607. data/vendor/jsdoc/test/global.js +0 -13
  608. data/vendor/jsdoc/test/globals.js +0 -25
  609. data/vendor/jsdoc/test/ignore.js +0 -10
  610. data/vendor/jsdoc/test/inner.js +0 -16
  611. data/vendor/jsdoc/test/jsdoc_test.js +0 -477
  612. data/vendor/jsdoc/test/lend.js +0 -33
  613. data/vendor/jsdoc/test/memberof.js +0 -20
  614. data/vendor/jsdoc/test/memberof_constructor.js +0 -15
  615. data/vendor/jsdoc/test/name.js +0 -19
  616. data/vendor/jsdoc/test/namespace_nested.js +0 -23
  617. data/vendor/jsdoc/test/nocode.js +0 -13
  618. data/vendor/jsdoc/test/oblit_anon.js +0 -20
  619. data/vendor/jsdoc/test/overview.js +0 -20
  620. data/vendor/jsdoc/test/param_inline.js +0 -37
  621. data/vendor/jsdoc/test/params_optional.js +0 -8
  622. data/vendor/jsdoc/test/prototype.js +0 -17
  623. data/vendor/jsdoc/test/prototype_nested.js +0 -9
  624. data/vendor/jsdoc/test/prototype_oblit.js +0 -13
  625. data/vendor/jsdoc/test/prototype_oblit_constructor.js +0 -24
  626. data/vendor/jsdoc/test/public.js +0 -10
  627. data/vendor/jsdoc/test/shared.js +0 -42
  628. data/vendor/jsdoc/test/shared2.js +0 -2
  629. data/vendor/jsdoc/test/shortcuts.js +0 -22
  630. data/vendor/jsdoc/test/static_this.js +0 -13
  631. data/vendor/jsdoc/test/synonyms.js +0 -23
  632. data/vendor/jsdoc/test/tosource.js +0 -23
  633. data/vendor/jsdoc/test/variable_redefine.js +0 -14
@@ -274,3 +274,32 @@ test("Timeouts - Status listener callback", function() {
274
274
  }, 500);
275
275
  });
276
276
 
277
+ test("Test Multiple listeners per single status response", function() {
278
+
279
+
280
+ var numResponses = 0;
281
+ var response;
282
+
283
+ expect(4);
284
+
285
+ request.notify(200, this, function(response) {
286
+ numResponses++;
287
+ ok(true, "Receieved a response");
288
+
289
+ if (numResponses === 2) window.start();
290
+ });
291
+
292
+ request.notify(200, this, function(response) {
293
+ numResponses++;
294
+ ok(true, "Receieved a response");
295
+
296
+ if (numResponses === 2) window.start();
297
+ });
298
+
299
+ response = request.send();
300
+ ok(response !== null, 'request.send() should return a response object');
301
+ ok(response.get('status')<0, 'response should still not have a return code since this should be async');
302
+
303
+ stop() ; // stops the test runner - wait for response
304
+ });
305
+
@@ -448,6 +448,8 @@ SC.ArrayController = SC.Controller.extend(SC.Array, SC.SelectionSupport,
448
448
  }
449
449
 
450
450
  lastContent.removeObserver('status', this, sfunc);
451
+
452
+ this.teardownEnumerablePropertyChains(lastContent);
451
453
  }
452
454
 
453
455
  // save new cached values
@@ -480,6 +482,8 @@ SC.ArrayController = SC.Controller.extend(SC.Array, SC.SelectionSupport,
480
482
  // Observer for changes to the status property, in case this is an
481
483
  // SC.Record or SC.RecordArray.
482
484
  content.addObserver('status', this, sfunc);
485
+
486
+ this.setupEnumerablePropertyChains(content);
483
487
  } else {
484
488
  newlen = SC.none(content) ? 0 : 1;
485
489
  }
@@ -487,6 +491,7 @@ SC.ArrayController = SC.Controller.extend(SC.Array, SC.SelectionSupport,
487
491
  // finally, notify enumerable content has changed.
488
492
  this._scac_length = newlen;
489
493
  this._scac_contentStatusDidChange();
494
+
490
495
  this.arrayContentDidChange(0, 0, newlen);
491
496
  this.updateSelectionAfterContentChange();
492
497
  }.observes('content'),
@@ -39,6 +39,26 @@ SC.Controller = SC.Object.extend(
39
39
 
40
40
  @property {Boolean}
41
41
  */
42
- isEditable: YES
42
+ isEditable: YES,
43
+
44
+ /**
45
+ * Set this to YES if you are setting the controller content to a recordArray
46
+ * or other content that needs to be cleaned up (with `.destroy()`) when
47
+ * new content is set.
48
+ */
49
+ destroyContentOnReplace: NO,
50
+
51
+ contentObjectDidChanged: function() {
52
+ var oldContent, newContent;
53
+
54
+ if (!this.get('destroyContentOnReplace')) return;
55
+
56
+ oldContent = this._oldContent,
57
+ newContent = this.get('content');
58
+ if (oldContent && newContent !== oldContent && oldContent.destroy) {
59
+ oldContent.destroy();
60
+ }
61
+ this._oldContent = newContent;
62
+ }.observes('content')
43
63
 
44
64
  });
@@ -20,13 +20,18 @@ SC.Button = SC.TemplateView.extend({
20
20
  }
21
21
  },
22
22
 
23
+ rootResponder: function() {
24
+ var pane = this.get('pane');
25
+ return pane.get('rootResponder');
26
+ }.property('pane').cacheable(),
27
+
23
28
  // Setting isActive to false will remove 'is-active' from our
24
29
  // layer's class names.
25
30
  mouseUp: function(event) {
26
31
  if (this.get('isActive')) {
27
32
  var action = this.get('action'),
28
33
  target = this.get('target') || null,
29
- rootResponder = this.getPath('pane.rootResponder');
34
+ rootResponder = this.get('rootResponder');
30
35
 
31
36
  if (action && rootResponder) {
32
37
  rootResponder.sendAction(action, target, this, this.get('pane'), null, this);
@@ -46,4 +51,3 @@ SC.Button = SC.TemplateView.extend({
46
51
  this.mouseUp(touch);
47
52
  }
48
53
  });
49
-
@@ -107,23 +107,7 @@ SC.mixin(/** @lends SC */ {
107
107
  @param data {Object} Optional data. If passed, write.
108
108
  @returns {Object} the value of the named data
109
109
  */
110
- data: function(elem, name, data) {
111
- elem = (elem === window) ? "@window" : elem ;
112
- var hash = SC.hashFor(elem) ; // get the hash key
113
-
114
- // Generate the data cache if needed
115
- var cache = SC._data_cache ;
116
- if (!cache) SC._data_cache = cache = {} ;
117
-
118
- // Now get cache for element
119
- var elemCache = cache[hash] ;
120
- if (name && !elemCache) cache[hash] = elemCache = {} ;
121
-
122
- // Write data if provided
123
- if (elemCache && (data !== undefined)) elemCache[name] = data ;
124
-
125
- return (name) ? elemCache[name] : elemCache ;
126
- },
110
+ data: $.data,
127
111
 
128
112
  /**
129
113
  Removes data from the global cache. This is used throughout the
@@ -136,31 +120,7 @@ SC.mixin(/** @lends SC */ {
136
120
  @param name {String} optional name to remove.
137
121
  @returns {Object} the value or cache that was removed
138
122
  */
139
- removeData: function(elem, name) {
140
- elem = (elem === window) ? "@window" : elem ;
141
- var hash = SC.hashFor(elem) ;
142
-
143
- // return undefined if no cache is defined
144
- var cache = SC._data_cache ;
145
- if (!cache) return undefined ;
146
-
147
- // return undefined if the elem cache is undefined
148
- var elemCache = cache[hash] ;
149
- if (!elemCache) return undefined;
150
-
151
- // get the return value
152
- var ret = (name) ? elemCache[name] : elemCache ;
153
-
154
- // and delete as appropriate
155
- if (name) {
156
- delete elemCache[name] ;
157
- } else {
158
- delete cache[hash] ;
159
- }
160
-
161
- return ret ;
162
- },
163
-
123
+ removeData: $.removeData,
164
124
 
165
125
  // ..........................................................
166
126
  // LOCALIZATION SUPPORT
@@ -51,23 +51,32 @@ sc_require('ext/handlebars');
51
51
  displayTemplate: fn,
52
52
  inverseTemplate: inverse,
53
53
  property: property,
54
- previousContext: this
54
+ previousContext: this,
55
+ tagName: (options.hash.tagName || "span")
55
56
  });
56
57
 
58
+ var observer, invoker;
59
+
57
60
  view.get('childViews').push(bindView);
58
61
 
59
- // Observe the given property on the context and
60
- // tells the SC._BindableSpan to re-render.
61
- this.addObserver(property, this, function observer() {
62
+ observer = function() {
62
63
  if (bindView.get('layer')) {
63
64
  bindView.rerender();
64
65
  } else {
65
66
  // If no layer can be found, we can assume somewhere
66
67
  // above it has been re-rendered, so remove the
67
68
  // observer.
68
- this.removeObserver(property, this, observer);
69
+ this.removeObserver(property, invoker);
69
70
  }
70
- });
71
+ };
72
+
73
+ invoker = function() {
74
+ this.invokeOnce(observer);
75
+ };
76
+
77
+ // Observe the given property on the context and
78
+ // tells the SC._BindableSpan to re-render.
79
+ this.addObserver(property, invoker);
71
80
 
72
81
  var context = bindView.renderContext(bindView.get('tagName'));
73
82
  bindView.renderToContext(context);
@@ -142,10 +151,9 @@ Handlebars.registerHelper('bindAttr', function(options) {
142
151
  var property = attrs[attr];
143
152
  var value = this.getPath(property);
144
153
 
145
- // Add an observer to the view for when the property changes.
146
- // When the observer fires, find the element using the
147
- // unique data id and update the attribute to the new value.
148
- this.addObserver(property, function observer() {
154
+ var observer, invoker;
155
+
156
+ observer = function observer() {
149
157
  var result = this.getPath(property);
150
158
  var elem = view.$("[data-handlebars-id='" + dataId + "']");
151
159
 
@@ -154,7 +162,7 @@ Handlebars.registerHelper('bindAttr', function(options) {
154
162
  // In that case, we can assume the template has been re-rendered
155
163
  // and we need to clean up the observer.
156
164
  if (elem.length === 0) {
157
- this.removeObserver(property, observer);
165
+ this.removeObserver(property, invoker);
158
166
  return;
159
167
  }
160
168
 
@@ -170,7 +178,16 @@ Handlebars.registerHelper('bindAttr', function(options) {
170
178
  } else {
171
179
  elem.attr(attr, result);
172
180
  }
173
- });
181
+ };
182
+
183
+ invoker = function() {
184
+ this.invokeOnce(observer);
185
+ };
186
+
187
+ // Add an observer to the view for when the property changes.
188
+ // When the observer fires, find the element using the
189
+ // unique data id and update the attribute to the new value.
190
+ this.addObserver(property, invoker);
174
191
 
175
192
  // Use the attribute's name as the value when it is YES
176
193
  if (value === YES) {
@@ -246,9 +263,11 @@ SC.Handlebars.bindClasses = function(context, classBindings, view, id) {
246
263
  // the property changes.
247
264
  var oldClass;
248
265
 
266
+ var observer, invoker;
267
+
249
268
  // Set up an observer on the context. If the property changes, toggle the
250
269
  // class name.
251
- var observer = function() {
270
+ observer = function() {
252
271
  // Get the current value of the property
253
272
  newClass = classStringForProperty(property);
254
273
  elem = id ? view.$("[data-handlebars-id='" + id + "']") : view.$();
@@ -256,7 +275,7 @@ SC.Handlebars.bindClasses = function(context, classBindings, view, id) {
256
275
  // If we can't find the element anymore, a parent template has been
257
276
  // re-rendered and we've been nuked. Remove the observer.
258
277
  if (elem.length === 0) {
259
- context.removeObserver(property, observer);
278
+ context.removeObserver(property, invoker);
260
279
  } else {
261
280
  // If we had previously added a class to the element, remove it.
262
281
  if (oldClass) {
@@ -274,7 +293,11 @@ SC.Handlebars.bindClasses = function(context, classBindings, view, id) {
274
293
  }
275
294
  };
276
295
 
277
- context.addObserver(property, observer);
296
+ invoker = function() {
297
+ this.invokeOnce(observer);
298
+ };
299
+
300
+ context.addObserver(property, invoker);
278
301
 
279
302
  // We've already setup the observer; now we just need to figure out the correct
280
303
  // behavior right now on the first pass through.
@@ -9,12 +9,14 @@ Handlebars.registerHelper('collection', function(path, options) {
9
9
  var hash = options.hash;
10
10
  var collectionClass, collectionObject;
11
11
 
12
- collectionClass = path ? SC.objectForPropertyPath(path) : SC.TemplateCollectionView;
13
- //@ if (debug)
12
+ collectionClass = path ? SC.getPath(this, path) || SC.getPath(path) :
13
+ SC.TemplateCollectionView;
14
+
15
+ // @if (debug)
14
16
  if (!collectionClass) {
15
17
  throw "%@ #collection: Could not find %@".fmt(data.view, path);
16
18
  }
17
- //@ endif
19
+ // @endif
18
20
 
19
21
  var extensions = {};
20
22
 
@@ -51,7 +53,7 @@ Handlebars.registerHelper('collection', function(path, options) {
51
53
  });
52
54
 
53
55
  Handlebars.registerHelper('each', function(path, options) {
54
- options.hash.contentBinding = SC.Binding.from('*'+path, this);
56
+ options.hash.contentBinding = SC.Binding.from('*'+path, this).oneWay();
55
57
  options.hash.itemContextProperty = 'content';
56
58
  return Handlebars.helpers.collection.call(this, null, options);
57
59
  });
@@ -167,7 +167,7 @@ SC.ResponderContext = {
167
167
  if (responder) responder.set('isFirstResponder', YES);
168
168
 
169
169
  this._notifyDidBecomeFirstResponder(responder, responder, common);
170
-
170
+
171
171
  // now, tell everyone the good news!
172
172
  this.endPropertyChanges();
173
173
 
@@ -15,8 +15,13 @@ SC.Checkbox = SC.TemplateView.extend(
15
15
  title: null,
16
16
  value: null,
17
17
 
18
+ displayTitle: function() {
19
+ var title = this.get('title');
20
+ return title ? SC.String.loc(title) : null;
21
+ }.property('title').cacheable(),
22
+
18
23
  classNames: ['sc-checkbox'],
19
- template: SC.Handlebars.compile('<label><input type="checkbox">{{title}}</label>'),
24
+ template: SC.Handlebars.compile('<label><input type="checkbox">{{displayTitle}}</label>'),
20
25
 
21
26
  didCreateLayer: function() {
22
27
  var self = this;
@@ -27,14 +32,14 @@ SC.Checkbox = SC.TemplateView.extend(
27
32
  },
28
33
 
29
34
  domValueDidChange: function(node) {
30
- this.set('value', !!$(node).attr('checked'));
35
+ this.set('value', $(node).prop('checked'));
31
36
  },
32
37
 
33
38
  value: function(key, value) {
34
39
  if (value !== undefined) {
35
- this.$('input').attr('checked', value);
40
+ this.$('input').prop('checked', value);
36
41
  } else {
37
- value = this.$('input').attr('checked');
42
+ value = this.$('input').prop('checked');
38
43
  }
39
44
 
40
45
  return value;
@@ -52,9 +57,9 @@ SC.CheckboxSupport = /** @scope SC.CheckboxSupport */{
52
57
 
53
58
  value: function(key, value) {
54
59
  if (value !== undefined) {
55
- this.$('input').attr('checked', value);
60
+ this.$('input').prop('checked', value);
56
61
  } else {
57
- value = this.$('input').attr('checked');
62
+ value = this.$('input').prop('checked');
58
63
  }
59
64
 
60
65
  return value;
@@ -14,6 +14,15 @@ SC.TextField = SC.TemplateView.extend(
14
14
 
15
15
  classNames: ['sc-text-field'],
16
16
 
17
+ /**
18
+ If set to `YES` uses textarea tag instead of input to
19
+ accommodate multi-line strings.
20
+
21
+ @type Boolean
22
+ @default NO
23
+ */
24
+ isMultiline: NO,
25
+
17
26
  // we can't use bindAttr because of a race condition:
18
27
  //
19
28
  // when `value` is set, the bindAttr observer immediately calls
@@ -25,18 +34,30 @@ SC.TextField = SC.TemplateView.extend(
25
34
  // In short, because we need to be able to catch changes to the
26
35
  // DOM made directly, we cannot also rely on bindAttr to update
27
36
  // the property: a chicken-and-egg problem.
28
- template: SC.Handlebars.compile('<input type="text">'),
37
+ template: function(){
38
+ return SC.Handlebars.compile(this.get('isMultiline') ? '<textarea></textarea>' : '<input type="text">');
39
+ }.property('isMultiline').cacheable(),
40
+
41
+ $input: function() {
42
+ tagName = this.get('isMultiline') ? 'textarea' : 'input';
43
+ return this.$(tagName);
44
+ },
29
45
 
30
46
  didCreateLayer: function() {
31
47
  var self = this;
32
48
 
33
- var input = this.$('input');
49
+ var input = this.$input();
34
50
  input.val(this._value);
35
51
 
36
- SC.Event.add(input, 'focus', this, this.focusIn);
37
- SC.Event.add(input, 'blur', this, this.focusOut);
52
+ if (SC.browser.msie) {
53
+ SC.Event.add(input, 'focusin', this, this.focusIn);
54
+ SC.Event.add(input, 'focusout', this, this.focusOut);
55
+ } else {
56
+ SC.Event.add(input, 'focus', this, this.focusIn);
57
+ SC.Event.add(input, 'blur', this, this.focusOut);
58
+ }
38
59
 
39
- this.$('input').bind('change', function() {
60
+ input.bind('change', function() {
40
61
  self.domValueDidChange(SC.$(this));
41
62
  });
42
63
  },
@@ -58,11 +79,15 @@ SC.TextField = SC.TemplateView.extend(
58
79
  the underlying DOM element is created.
59
80
  */
60
81
  value: function(key, value) {
61
- var input = this.$('input');
82
+ var input = this.$input();
62
83
 
63
84
  if (value !== undefined) {
64
- this._value = value;
65
- input.val(value);
85
+ // We don't want to unnecessarily set the value.
86
+ // Doing that could cause the selection to be lost.
87
+ if (this._value !== value || input.val() !== value) {
88
+ this._value = value;
89
+ input.val(value);
90
+ }
66
91
  } else if (input.length) {
67
92
  this._value = value = input.val();
68
93
  } else {
@@ -91,16 +116,17 @@ SC.TextField = SC.TemplateView.extend(
91
116
  },
92
117
 
93
118
  keyUp: function(evt) {
94
- this.domValueDidChange(this.$('input'));
119
+ this.domValueDidChange(this.$input());
95
120
 
96
- if (evt.keyCode === 13) {
97
- return this.insertNewline(evt);
98
- } else if (evt.keyCode === 27) {
99
- return this.cancel(evt);
121
+ if (evt.keyCode === SC.Event.KEY_RETURN) {
122
+ return this.tryToPerform('insertNewline', evt);
123
+ } else if (evt.keyCode === SC.Event.KEY_ESC) {
124
+ return this.tryToPerform('cancel', evt);
100
125
  }
101
126
 
102
127
  return true;
103
128
  }
129
+
104
130
  });
105
131
 
106
132
  SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
@@ -109,7 +135,7 @@ SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
109
135
  Used internally to store value because the layer may not exist
110
136
  */
111
137
  _value: null,
112
-
138
+
113
139
  /**
114
140
  @type String
115
141
  @default null
@@ -118,8 +144,12 @@ SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
118
144
  var input = this.$('input');
119
145
 
120
146
  if (value !== undefined) {
121
- this._value = value;
122
- input.val(value);
147
+ // We don't want to unnecessarily set the value.
148
+ // Doing that could cause the selection to be lost.
149
+ if (this._value !== value || input.val() !== value) {
150
+ this._value = value;
151
+ input.val(value);
152
+ }
123
153
  } else {
124
154
  if (input.length > 0) {
125
155
  value = this._value = input.val();
@@ -136,8 +166,13 @@ SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
136
166
 
137
167
  input.val(this._value);
138
168
 
139
- SC.Event.add(input, 'focus', this, this.focusIn);
140
- SC.Event.add(input, 'blur', this, this.focusOut);
169
+ if (SC.browser.msie) {
170
+ SC.Event.add(input, 'focusin', this, this.focusIn);
171
+ SC.Event.add(input, 'focusout', this, this.focusOut);
172
+ } else {
173
+ SC.Event.add(input, 'focus', this, this.focusIn);
174
+ SC.Event.add(input, 'blur', this, this.focusOut);
175
+ }
141
176
  },
142
177
 
143
178
  focusIn: function(event) {
@@ -162,9 +197,9 @@ SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
162
197
  },
163
198
 
164
199
  keyUp: function(event) {
165
- if (event.keyCode === 13) {
200
+ if (event.keyCode === SC.Event.KEY_RETURN) {
166
201
  return this.tryToPerform('insertNewline', event);
167
- } else if (event.keyCode === 27) {
202
+ } else if (event.keyCode === SC.Event.KEY_ESC) {
168
203
  return this.tryToPerform('cancel', event);
169
204
  }
170
205
  }