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
@@ -5,13 +5,93 @@
5
5
  // ==========================================================================
6
6
 
7
7
  /*globals Forms module test ok equals same stop start */
8
+ var pane = SC.Pane.create();
9
+ module("Forms - Form Row", {
10
+ setup: function() {
11
+ pane.append();
12
+ },
8
13
 
9
- module("Forms.FormRowView");
14
+ teardown: function() {
15
+ pane.remove();
16
+ }
17
+ });
18
+
19
+ // - binds content
20
+ // - sets contentValueKey, respecting _singleField
21
+
22
+ test("Binds content to child views", function() {
23
+ SC.RunLoop.begin();
24
+ var test = SC.FormRowView.create({
25
+ childViews: 'a b'.w(),
26
+ a: SC.View.create(),
27
+ b: SC.View.create({ content: "HI" })
28
+ });
29
+ var content = SC.Object.create();
30
+ test.set('content', content);
31
+ SC.RunLoop.end();
32
+
33
+ equals(test.a.get('content'), content, "Content was set on view without content");
34
+ equals(test.b.get('content'), "HI", "Content stayed the same on view with content");
35
+ });
36
+
37
+ test("Sets contentValueKey on children", function() {
38
+ SC.RunLoop.begin();
39
+ var test = SC.FormRowView.create({
40
+ childViews: 'a b'.w(),
41
+ a: SC.View.create(),
42
+ b: SC.View.create({ contentValueKey: "HI" })
43
+ });
44
+ SC.RunLoop.end();
45
+
46
+ equals(test.a.get('contentValueKey'), 'a', "contentValueKey was set on the view without one");
47
+ equals(test.b.get('contentValueKey'), "HI", "contentValueKey was not set on view with one");
48
+ });
49
+
50
+ test("Sets contentValueKey to own key for _singleField", function() {
51
+ SC.RunLoop.begin();
52
+ var test = SC.FormRowView.create({
53
+ formKey: "theFormKey",
54
+ childViews: '_singleField'.w(),
55
+ _singleField: SC.View.create()
56
+ });
57
+ SC.RunLoop.end();
10
58
 
11
- // TODO: Replace with real unit test for Forms.FormRowView
12
- test("test description", function() {
13
- var expected = "test";
14
- var result = "test";
15
- equals(result, expected, "test should equal test");
59
+ equals(test._singleField.get('contentValueKey'), 'theFormKey', "contentValueKey is set to row's formKey if the view is a _singleField");
16
60
  });
17
61
 
62
+ test("Measuring label width", function() {
63
+ SC.RunLoop.begin();
64
+ var row = SC.FormRowView.create({
65
+ label: "Hi"
66
+ });
67
+ pane.appendChild(row);
68
+ SC.RunLoop.end();
69
+
70
+ var size = row.get('rowLabelMeasuredSize');
71
+ ok(size > 0, "Size should not be 0");
72
+
73
+ SC.RunLoop.begin();
74
+ row.set('label', "Hiyo!");
75
+ SC.RunLoop.end();
76
+
77
+ var newSize = row.get('rowLabelMeasuredSize');
78
+ ok(newSize > size, "Size grew when label text did");
79
+ });
80
+
81
+ test("Creating Form Rows", function() {
82
+ var ret = SC.FormRowView.row("the label", SC.View.extend({
83
+ aProperty: YES
84
+ }), { extendedRow: YES });
85
+
86
+ ret = SC.FormRowView.create(ret);
87
+
88
+ equals(ret.extendedRow, YES, "Row was extended");
89
+ equals(ret._singleField.get('aProperty'), YES, "Property was defined on field");
90
+ equals(ret.get('label'), "the label");
91
+
92
+ ret = SC.FormRowView.row(SC.View.extend({ aProperty: YES }), { extendedRow: YES });
93
+ ret = SC.FormRowView.create(ret);
94
+
95
+ equals(ret.extendedRow, YES, "Row was extended");
96
+ equals(ret._singleField.get('aProperty'), YES, "Property was defined on field");
97
+ });
@@ -4,122 +4,99 @@
4
4
  // Portions ©2008-2011 Apple Inc. All rights reserved.
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
-
8
7
  /*globals Forms */
9
8
 
10
- /** @class
11
- FormView
12
- FormView is a lot like a normal view. However, in addition to the childViews
13
- collection, it has a fields collection. The items referenced here are NOT
14
- just children; they are explicity stated in the array fields, which works
15
- just like childViews, but marks fields to be laid out automatically.
16
-
17
- Usually, you will place rows into the FormView:
18
-
19
- childViews: "fullName gender".w(),
20
- contentBinding: 'MyApp.personController',
21
-
22
- fullName: SC.FormView.row("Name:", SC.TextFieldView.extend({
23
- layout: {height: 20, width: 150}
24
- })),
9
+ sc_require("mixins/emptiness");
10
+ sc_require("mixins/edit_mode");
11
+ sc_require("views/form_row");
25
12
 
26
- gender: SC.FormView.row("Gender:", SC.RadioView.design({
27
- layout: {width: 150, height: 40, centerY: 0},
28
- items: ["male", "female"]
29
- }))
13
+ /**
14
+ @class
15
+ FormView lays out rows, manages their label widths, binds their
16
+ content properties, and sets up their contentValueKeys as needed.
30
17
 
31
- The name of the row (ie. 'fullName'), is passed down to the *FieldView, and used as the key
32
- to bind the value property to the content. In this case it will bind content.fullName to the
33
- value property of the textFieldView. Easy!
18
+ Usually, you will place rows into the FormView:
19
+
20
+ childViews: "fullName gender".w(),
21
+ contentBinding: 'MyApp.personController',
34
22
 
35
- One important thing about the field collection: It can contain any type of
36
- view, including other FormViews or subclasses of FormView.
23
+ fullName: SC.FormView.row("Name:", SC.TextFieldView.extend({
24
+ layout: {height: 20, width: 150}
25
+ })),
37
26
 
38
- This is important, because this is how you make nice rows that have a
39
- label and a field: these rows are actually subclasses of FormView itself.
27
+ gender: SC.FormView.row("Gender:", SC.RadioView.design({
28
+ layout: {width: 150, height: 40, centerY: 0},
29
+ items: ["male", "female"]
30
+ }))
40
31
 
41
- ## Editing
42
- The form does not allow editing by default; editing must be started by calling
43
- beginEditing.
32
+ The name of the row (ie. 'fullName'), is passed down to the fields, and used as the key
33
+ to bind the value property to the content. In this case it will bind content.fullName to the
34
+ value property of the textFieldView.
44
35
 
45
36
 
46
- @extends SC.View
47
- @implements SC.Editable
37
+ @extends SC.View
38
+ @implements SC.FlowedLayout, SC.CalculatesEmptiness, SC.FormsEditMode
48
39
  */
49
40
 
50
- sc_require("mixins/emptiness");
51
- sc_require("mixins/edit_mode");
52
- sc_require("views/form_row");
53
-
54
41
  SC.FormView = SC.View.extend(SC.FlowedLayout, SC.CalculatesEmptiness, SC.FormsEditMode, /** @scope SC.FormView.prototype */ {
42
+ // We lay out forms vertically. Each item gets its own "row". Wrapping makes
43
+ // no sense, as the FormView should grow with each row.
55
44
  layoutDirection: SC.LAYOUT_VERTICAL,
56
45
  canWrap: NO,
57
-
58
- renderDelegateName: 'formRenderDelegate',
59
-
60
- formFlowSpacing: undefined,
61
- formFlowSpacingDefault: { left: 5, top: 5, bottom: 5, right: 5 },
62
-
63
- defaultFlowSpacing: function() {
64
- return this.getThemedProperty('formFlowSpacing', 'FORM_FLOW_SPACING');
65
- }.property('formFlowSpacing', 'theme'),
66
-
67
- classNames: ["sc-form-view"],
68
46
 
69
- /**
70
- Whether to automatically start editing.
71
- */
72
- editsByDefault: YES,
47
+ renderDelegateName: 'formRenderDelegate',
73
48
 
74
49
  /**
75
- The input key view (to set previousKeyView for the first row, field, or sub-form).
50
+ The default padding around items in the form. By default, this comes from the theme.
51
+ You can supply your own directly, or override the formRenderDelegate:
76
52
 
77
- For fields, this will likely be the field itself.
53
+ // base it on the existing render delegate
54
+ MyTheme.formRenderDelegate = SC.AceTheme.formRenderDelegate.create({
55
+ flowSpacing: { left: 5, top: 5, right: 5, bottom: 5 }
56
+ });
78
57
  */
79
- firstKeyView: null,
58
+ defaultFlowSpacing: SC.propertyFromRenderDelegate('flowSpacing', {}),
59
+
60
+ classNames: ["sc-form-view"],
80
61
 
81
62
  /**
82
- The output key view.
63
+ Whether to automatically start editing.
83
64
  */
84
- lastKeyView: null,
65
+ editsByDefault: YES,
85
66
 
86
67
  /**
87
- The content to bind the form to. This content object is passed to all children.
68
+ The content to bind the form to. This content object is passed to all children.
88
69
 
89
- All child views, if added at design time via string-based childViews array, will get their
90
- contentValueKey set to their string. Note that SC.RowView passes on its contentValueKey to its
91
- child field if it doesn't have its own, and if its isNested property is YES, uses it to find its
92
- own content object.
70
+ All child views, if added at design time via string-based childViews array, will get their
71
+ contentValueKey set to their own key. Note that SC.RowView passes on its contentValueKey to its
72
+ child field, and if its isNested property is YES, uses it to find its own content object.
93
73
  */
94
74
  content: null,
95
75
 
96
76
  /**
97
- Rows in the form do not have to be full objects at load time. They can also be simple hashes
98
- which are then passed to exampleRow.extend.
77
+ Rows in the form do not have to be full SC.FormRowView at design time. They can also be hashes
78
+ that get loaded into rows.
99
79
  */
100
80
  exampleRow: SC.FormRowView.extend({
101
81
  labelView: SC.FormRowView.LabelView.extend({ textAlign: SC.ALIGN_RIGHT })
102
82
  }),
103
83
 
104
84
  /**
105
- Init function.
85
+ @private
106
86
  */
107
- init: function()
108
- {
87
+ init: function() {
109
88
  if (this.get("editsByDefault")) this.set("isEditing", YES);
110
89
  sc_super();
111
90
  },
112
91
 
113
92
  /**
114
- Calls _updateFields to load the fields.
115
93
  */
116
- createChildViews: function()
117
- {
118
- // keep array of keys so we can pass on key to child.
94
+ createChildViews: function() {
119
95
  var cv = SC.clone(this.get("childViews"));
120
96
  var idx, len = cv.length, key, v, exampleRow = this.get("exampleRow");
121
-
122
- // preprocess to handle templated rows (rows that use exampleRow to initialize)
97
+
98
+ // rows that are provided as plain hashes need to be created by passing them into
99
+ // exampleRow.extend.
123
100
  for (idx = 0; idx < len; idx++) {
124
101
  key = cv[idx];
125
102
  if (SC.typeOf(key) === SC.T_STRING) {
@@ -129,56 +106,54 @@ SC.FormView = SC.View.extend(SC.FlowedLayout, SC.CalculatesEmptiness, SC.FormsEd
129
106
  }
130
107
  }
131
108
  }
132
-
133
- // We need to add in contentValueKey before we call sc_super
134
- for (idx = 0; idx < len; idx++) {
135
- key = cv[idx];
136
- if (SC.typeOf(key) === SC.T_STRING) {
137
- v = this.get(key);
138
- if (v.isClass && v.prototype.hasContentValueSupport && !v.prototype.contentValueKey && v.prototype.isFormRow) {
139
- v.prototype.contentValueKey = key ;
140
- } else {
141
- v.prototype.formKey = key;
142
- }
143
- }
144
- }
145
-
146
- // get content for further ops
109
+
110
+ // we will be initializing the 'content' property for all child views
147
111
  var content = this.get("content");
148
112
  sc_super();
149
-
150
- // now, do the actual passing it
113
+
151
114
  for (idx = 0; idx < len; idx++) {
152
115
  key = cv[idx];
153
-
116
+
154
117
  // if the view was originally declared as a string, then we have something to give it
155
118
  if (SC.typeOf(key) === SC.T_STRING) {
156
119
  // try to get the actual view
157
120
  v = this.get(key);
158
-
159
- // see if it does indeed exist, and if it doesn't have a value already
160
- if (v && !v.isClass && v.isFormRow) {
161
- // set content
121
+
122
+ if (v && !v.isClass) {
123
+ // we used to set contentValueKey on applicable children, but given that was too
124
+ // implicit: any LabelView child of the form view would get the contentValueKey.
125
+ //
126
+ // instead, we give ALL views a formKey for their convenience; if they want to
127
+ // use contentValue support they should do so directly.
128
+ v.set('formKey', key);
129
+
130
+ // We used to try to be clever and bind child views' 'content' to
131
+ // individual properties if the views didn't have content value support.
132
+ // For instance, a plain view named 'myView' would get bound to content.myView.
133
+ //
134
+ // Cleverness is evil, so, we have dropped this. Instead, we always bind content,
135
+ // and always do so directly.
162
136
  if (!v.get("content")) {
163
-
164
- // controls can calculate their own value based on the contentValueKey we set earlier
165
- if (v.get('hasContentValueSupport')) v.bind('content', '.owner.content');
166
- // if it isn't a control then we can't use contentValueKey, so bind the content manually
167
- else v.bind('content', '.owner.content.' + key);
137
+ v.bind('content', this, 'content');
168
138
  }
169
-
170
- // set the label size measuring stuff
171
- if (this.get('labelWidth') !== null) v.set("shouldMeasureLabel", NO);
172
-
173
- // set label (if possible)
174
- if (v.get("isFormRow") && SC.none(v.get("label"))) {
175
- v.set("label", key.humanize().titleize());
139
+
140
+ // for form rows, set up label measuring and the label itself.
141
+ if (v.isFormRow) {
142
+ // set label (if possible).
143
+ if (SC.none(v.get('label'))) {
144
+ v.set("label", key.humanize().titleize());
145
+ }
146
+
147
+ // set the label size measuring stuff
148
+ if (this.get('labelWidth') !== null) {
149
+ v.set("shouldMeasureLabel", NO);
150
+ }
176
151
  }
152
+
177
153
  }
178
154
  }
179
155
  }
180
-
181
- // our internal bookeeping to prevent .
156
+
182
157
  this._hasCreatedRows = YES;
183
158
  this.recalculateLabelWidth();
184
159
  },
@@ -190,10 +165,18 @@ SC.FormView = SC.View.extend(SC.FlowedLayout, SC.CalculatesEmptiness, SC.FormsEd
190
165
  isRowDelegate: YES,
191
166
 
192
167
  /**
193
- The manually specified label width (null to automatically calculate, which is the default).
168
+ Supply a label width to avoid automatically calculating the widths of the labels
169
+ in the form. Leave null to let SproutCore automatically determine the proper width
170
+ for the label.
171
+
172
+ @type Number
173
+ @default null
194
174
  */
195
175
  labelWidth: null,
196
176
 
177
+ /**
178
+ Tells the child rows whether they should measure their labels or not.
179
+ */
197
180
  labelWidthDidChange: function() {
198
181
  var childViews = this.get('childViews'), i, len = childViews.length,
199
182
  shouldMeasure = SC.none(this.get('labelWidth'));
@@ -206,14 +189,17 @@ SC.FormView = SC.View.extend(SC.FlowedLayout, SC.CalculatesEmptiness, SC.FormsEd
206
189
  }.observes('labelWidth'),
207
190
 
208
191
  /**
209
- Calculates the current label width (if labelWidth is not null, it sets using the label width)
192
+ Propagates the label width to the child rows, finding the measured size if necessary.
210
193
  */
211
194
  recalculateLabelWidth: function() {
212
- if (!this._hasCreatedRows) return;
195
+ if (!this._hasCreatedRows) {
196
+ return;
197
+ }
213
198
 
214
199
  var ret = this.get("labelWidth"), children = this.get("childViews"), idx, len = children.length, child;
215
200
 
216
- // calculate by looping through child views and getting size (if possible)
201
+ // calculate by looping through child views and getting size (if possible and if
202
+ // no label width is explicitly set)
217
203
  if (ret === null) {
218
204
  ret = 0;
219
205
  for (idx = 0; idx < len; idx++) {
@@ -267,19 +253,5 @@ SC.mixin(SC.FormView, {
267
253
  row: function(optionalClass, properties, rowExt)
268
254
  {
269
255
  return SC.FormRowView.row(optionalClass, properties, rowExt);
270
- },
271
-
272
- /**
273
- Creates a field.
274
-
275
- Behind the scenes, this wraps the fieldClass in a FormFieldView—usually a
276
- specialized variant of FormFieldView meant specifically to wrap that class.
277
-
278
- You can add your own special variants of FormFieldView if you want to expose
279
- special features of your own view by calling FormFieldView.registerWrapper.
280
- */
281
- field: function(fieldClass, properties)
282
- {
283
- return SC.FormFieldView.field(fieldClass, properties);
284
256
  }
285
257
  });
@@ -8,95 +8,93 @@
8
8
  /*globals Forms */
9
9
 
10
10
  /** @class
11
- Represents a single row in a form. Rows have label and any number of other child views.
11
+ Represents a single row in a form. Rows have label and any number of other child views.
12
12
 
13
-
14
- @extends SC.FormView
15
- @author Alex Iskander
13
+
14
+ @extends SC.FormView
15
+ @author Alex Iskander
16
16
  */
17
17
  sc_require("mixins/emptiness");
18
18
  sc_require("mixins/edit_mode");
19
19
 
20
20
  SC.FormRowView = SC.View.extend(SC.FlowedLayout, SC.CalculatesEmptiness, SC.FormsEditMode,
21
21
  /** @scope Forms.FormRowView.prototype */ {
22
+ classNames: ["sc-form-row-view"],
22
23
  renderDelegateName: 'formRowRenderDelegate',
23
-
24
- layout: {left: 0, width: 0, height: 0},
25
24
 
26
- rowFlowSpacing: undefined,
27
- rowFlowPadding: undefined,
28
-
25
+ flowPadding: SC.propertyFromRenderDelegate('flowPadding'),
26
+ defaultFlowSpacing: SC.propertyFromRenderDelegate('flowSpacing'),
27
+
29
28
  fillWidth: YES,
29
+ layoutDirection: SC.LAYOUT_HORIZONTAL,
30
+
31
+ layout: {left: 0, width: 0, height: 0},
32
+
33
+ /**
34
+ Walks like a duck.
35
+ */
36
+ isFormRow: YES,
37
+
38
+ /**
39
+ A value set so that FormView knows to tell us about the row label size change.
40
+ */
41
+ hasRowLabel: YES,
42
+
30
43
 
31
- defaultFlowSpacing: function() {
32
- return this.getThemedProperty("rowFlowSpacing", 'FORM_ROW_FLOW_SPACING');
33
- }.property("rowFlowSpacing", "theme"),
44
+ /**
45
+ The text to display next to the row. If undefined, SproutCore will try
46
+ to set it automatically to the key corresponding to this row in the FormView.
47
+ */
48
+ label: undefined,
34
49
 
35
- flowPadding: function() {
36
- return this.getThemedProperty("rowFlowPadding", 'FORM_ROW_FLOW_PADDING');
37
- }.property("rowFlowPadding", "theme"),
50
+ /**
51
+ The actual size for the label, as assigned by the parent FormView.
52
+ */
53
+ rowLabelSize: 0,
38
54
 
39
- classNames: ["sc-form-row-view"],
55
+ /**
56
+ The measured size of the label. The parent FormView may use this to
57
+ determine the proper rowLabelSize.
58
+ */
59
+ rowLabelMeasuredSize: 0,
40
60
 
41
61
  /**
42
- Walks like a duck.
62
+ If NO, the label will not automatically measure itself. The parent
63
+ FormView normally manages this property for FormRowView.
64
+
65
+ Note that FormRowView never changes its own rowLabelSize: it only
66
+ measures it. The measurement is placed into rowLabelMeasuredSize.
67
+
68
+ The FormView then sets the rowLabelSize, which is used to set the
69
+ width of the LabelView.
43
70
  */
44
- isFormRow: YES,
45
-
46
- /**
47
- The label for the row (string label)
48
- */
49
- label: "",
50
-
51
- /**
52
- The current size of the labels.
53
- */
54
- rowLabelSize: 0,
55
-
56
- /**
57
- The current measured size of the label.
58
- */
59
- rowLabelMeasuredSize: 0,
60
-
61
- /**
62
- If NO, the label will not automatically measure itself.
63
- */
64
- shouldMeasureLabel: YES,
65
-
66
- /**
67
- A value set so that FormView knows to tell us about the row label size change.
68
- */
69
- hasRowLabel: YES,
70
-
71
- /**
72
- The label view.
73
- */
74
- labelView: null,
75
-
76
- /**
77
- Direction of the flow.
78
- */
79
- layoutDirection: SC.LAYOUT_HORIZONTAL,
80
-
71
+ shouldMeasureLabel: YES,
72
+
73
+ /**
74
+ The label view. The default is an SC.FormRowView.LabelView, which is
75
+ configured to handle resizing.
76
+ */
77
+ labelView: null, // NOTE: gets set at end of file.
78
+
81
79
  /**
82
- Updates keys, content, etc. on fields. Also, handles our "special" field (only-one case)
80
+ Updates keys, content, etc. on fields. Also, handles our "special" field (only-one case)
83
81
  */
84
- createChildViews: function()
85
- {
82
+ createChildViews: function() {
86
83
  // keep array of keys so we can pass on key to child.
87
- var cv = SC.clone(this.get("childViews"));
84
+ var cv = SC.clone(this.get('childViews'));
88
85
 
89
86
  // add label
90
87
  if (this.labelView.isClass) {
91
88
  this.labelView = this.createChildView(this.labelView, {
92
- value: this.get("label")
89
+ value: this.get('label')
93
90
  });
94
- this.labelView.addObserver("measuredSize", this, "labelSizeDidChange");
95
- this.labelView.bind("shouldMeasureSize", this, "shouldMeasureLabel");
96
- this.get("childViews").unshift(this.labelView);
91
+
92
+ this.labelView.addObserver('measuredSize', this, 'labelSizeDidChange');
93
+ this.labelView.bind('shouldMeasureSize', this, 'shouldMeasureLabel');
94
+ this.get('childViews').unshift(this.labelView);
97
95
  }
98
96
 
99
- var content = this.get("content");
97
+ var content = this.get('content');
100
98
 
101
99
  sc_super();
102
100
 
@@ -110,27 +108,29 @@ SC.FormRowView = SC.View.extend(SC.FlowedLayout, SC.CalculatesEmptiness, SC.Form
110
108
  if (SC.typeOf(key) === SC.T_STRING) {
111
109
  // try to get the actual view
112
110
  v = this.get(key);
113
-
111
+
114
112
  // see if it does indeed exist, and if it doesn't have a value already
115
113
  if (v && !v.isClass) {
116
- if (!v.get("contentValueKey")) {
114
+ if (!v.get('contentValueKey')) {
117
115
  //
118
116
  // NOTE: WE HAVE A SPECIAL CASE
119
- // If this is the single field, pass through our contentValueKey
117
+ // If this is the single field, pass through our formKey
118
+ // Single-field rows are created by the SC.FormView.row helper.
120
119
  if (key === "_singleField") {
121
- v.set("contentValueKey", this.get("contentValueKey"));
120
+ v.set('contentValueKey', this.get('formKey'));
122
121
  } else {
123
- v.set("contentValueKey", key);
122
+ v.set('contentValueKey', key);
124
123
  }
125
124
  }
126
- if (!v.get("content")) {
127
- v.bind('content', '.owner.content') ;
125
+
126
+ if (!v.get('content')) {
127
+ v.bind('content', this, 'content') ;
128
128
  }
129
129
  }
130
-
130
+
131
131
  }
132
132
  }
133
-
133
+
134
134
  this.rowLabelSizeDidChange();
135
135
  },
136
136
 
@@ -156,32 +156,31 @@ SC.FormRowView = SC.View.extend(SC.FlowedLayout, SC.CalculatesEmptiness, SC.Form
156
156
  });
157
157
 
158
158
  SC.FormRowView.mixin({
159
- row: function(label, fieldType, ext)
160
- {
161
- if (label.isClass) {
162
- ext = fieldType;
163
- fieldType = label;
164
- label = null;
165
- }
166
- // now, create a hash (will be used by the parent form's exampleRow)
167
- if (!ext) {
168
- ext = {};
169
- } else {
170
- ext = SC.clone(ext);
171
- }
172
- ext.label = label;
173
- ext.childViews = ["_singleField"];
174
- ext._singleField = fieldType;
175
- return ext;
176
- },
177
-
178
- LabelView: SC.LabelView.extend(SC.AutoResize, SC.CalculatesEmptiness, {
179
- shouldAutoResize: NO, // only change the measuredSize so we can update.
180
- layout: { left:0, top:0, width: 0, height: 18 },
181
- fillHeight: YES,
182
- classNames: ["sc-form-label"],
159
+ row: function(label, fieldType, ext) {
160
+ if (label.isClass) {
161
+ ext = fieldType;
162
+ fieldType = label;
163
+ label = null;
164
+ }
165
+ // now, create a hash (will be used by the parent form's exampleRow)
166
+ if (!ext) {
167
+ ext = {};
168
+ } else {
169
+ ext = SC.clone(ext);
170
+ }
171
+ ext.label = label;
172
+ ext.childViews = ["_singleField"];
173
+ ext._singleField = fieldType;
174
+ return ext;
175
+ },
176
+
177
+ LabelView: SC.LabelView.extend(SC.AutoResize, SC.CalculatesEmptiness, {
178
+ shouldAutoResize: NO, // only change the measuredSize so we can update.
179
+ layout: { left:0, top:0, width: 0, height: 18 },
180
+ fillHeight: YES,
181
+ classNames: ["sc-form-label"],
183
182
  isValue: NO
184
- })
183
+ })
185
184
  });
186
185
 
187
186
  SC.FormRowView.prototype.labelView = SC.FormRowView.LabelView.design();