sproutcore 1.4.5 → 1.5.0.pre.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (792) hide show
  1. data/CHANGELOG +35 -0
  2. data/VERSION.yml +2 -2
  3. data/lib/Buildfile +13 -4
  4. data/lib/buildtasks/build.rake +20 -17
  5. data/lib/buildtasks/manifest.rake +143 -78
  6. data/lib/buildtasks/target.rake +1 -0
  7. data/lib/doc_templates/sproutcore/index.tmpl +18 -4
  8. data/lib/doc_templates/sproutcore/publish.js +1 -1
  9. data/lib/frameworks/sproutcore/Buildfile +24 -13
  10. data/lib/frameworks/sproutcore/{CHANGELOG-1.4.md → CHANGELOG.md} +0 -0
  11. data/lib/frameworks/sproutcore/apps/greenhouse/controllers/file.js +8 -48
  12. data/lib/frameworks/sproutcore/apps/greenhouse/core.js +3 -5
  13. data/lib/frameworks/sproutcore/apps/greenhouse/data_source.js +1 -1
  14. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/app_page.js +26 -4
  15. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/strings.js +7 -1
  16. data/lib/frameworks/sproutcore/apps/greenhouse/main.js +1 -1
  17. data/lib/frameworks/sproutcore/apps/greenhouse/models/design.js +6 -2
  18. data/lib/frameworks/sproutcore/apps/greenhouse/models/dir.js +8 -7
  19. data/lib/frameworks/sproutcore/apps/greenhouse/models/file.js +2 -2
  20. data/lib/frameworks/sproutcore/apps/greenhouse/states/inspector.js +133 -125
  21. data/lib/frameworks/sproutcore/apps/greenhouse/states/library.js +121 -112
  22. data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +233 -191
  23. data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +265 -258
  24. data/lib/frameworks/sproutcore/apps/greenhouse/states/ready.js +153 -141
  25. data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
  26. data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +21 -0
  27. data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +108 -0
  28. data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +36 -0
  29. data/lib/frameworks/sproutcore/apps/test_controls/core.js +29 -0
  30. data/lib/frameworks/sproutcore/apps/test_controls/main.js +14 -0
  31. data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +142 -0
  32. data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +45 -0
  33. data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +84 -0
  34. data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +40 -0
  35. data/lib/frameworks/sproutcore/apps/test_controls/resources/loading.rhtml +9 -0
  36. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +60 -0
  37. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +144 -0
  38. data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +42 -0
  39. data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +48 -0
  40. data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +76 -0
  41. data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +98 -0
  42. data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +60 -0
  43. data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +53 -0
  44. data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +50 -0
  45. data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +44 -0
  46. data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +41 -0
  47. data/lib/frameworks/sproutcore/apps/test_controls/theme.js +34 -0
  48. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +7 -0
  49. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/images/main-bg.png +0 -0
  50. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +24 -6
  51. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +36 -46
  52. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/array.js +175 -195
  53. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/controller.js +0 -0
  54. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/object.js +0 -0
  55. data/lib/frameworks/sproutcore/frameworks/amber/core.js +201 -0
  56. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/ext/object.js +23 -23
  57. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/ext/run_loop.js +47 -47
  58. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/mixins/delegate_support.js +36 -36
  59. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/mixins/responder_context.js +55 -55
  60. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/mixins/selection_support.js +45 -45
  61. data/lib/frameworks/sproutcore/frameworks/amber/mixins/string.js +163 -0
  62. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/panes/main.js +4 -3
  63. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/panes/pane.js +123 -9
  64. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/protocols/observable_protocol.js +11 -11
  65. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/protocols/sparse_array_delegate.js +40 -40
  66. data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → amber/resources}/core.css +0 -103
  67. data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → amber/resources}/view.css +0 -0
  68. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/application.js +0 -2
  69. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/browser.js +0 -0
  70. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/builder.js +0 -0
  71. data/lib/frameworks/sproutcore/frameworks/amber/system/core_query.js +141 -0
  72. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/cursor.js +0 -0
  73. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/device.js +0 -0
  74. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/event.js +34 -14
  75. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/json.js +0 -0
  76. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/locale.js +0 -0
  77. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/page.js +0 -0
  78. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/platform.js +30 -10
  79. data/lib/frameworks/sproutcore/frameworks/amber/system/ready.js +77 -0
  80. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/render_context.js +330 -255
  81. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/responder.js +0 -0
  82. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/root_responder.js +152 -60
  83. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/system/selection_set.js +140 -145
  84. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/system/sparse_array.js +101 -87
  85. data/lib/frameworks/sproutcore/frameworks/amber/system/theme.js +316 -0
  86. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/timer.js +149 -147
  87. data/lib/frameworks/sproutcore/frameworks/amber/system/utils.js +174 -0
  88. data/lib/frameworks/sproutcore/frameworks/amber/system/utils/rect.js +98 -0
  89. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/array_case.js +41 -41
  90. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/enum_case.js +0 -0
  91. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/null_case.js +0 -0
  92. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/selection_support.js +0 -0
  93. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/single_case.js +9 -9
  94. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/empty_case.js +0 -0
  95. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/multiple_case.js +0 -0
  96. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/single_case.js +0 -0
  97. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/single_enumerable_case.js +0 -0
  98. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/mixins/responder_context.js +0 -0
  99. data/lib/frameworks/sproutcore/frameworks/amber/tests/mixins/string.js +55 -0
  100. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/builder.js +0 -0
  101. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/core_query/within.js +7 -8
  102. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/json.js +0 -0
  103. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/locale.js +0 -0
  104. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/begin.js +0 -0
  105. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/element.js +0 -0
  106. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/end.js +1 -1
  107. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/get.js +0 -0
  108. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_attr.js +0 -0
  109. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_basic.js +0 -0
  110. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_className.js +0 -2
  111. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_style.js +11 -3
  112. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/init.js +0 -0
  113. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/join.js +0 -0
  114. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/push_text.js +0 -0
  115. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/tag.js +0 -0
  116. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/update.js +0 -0
  117. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeKeyPane.js +0 -0
  118. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeMainPane.js +0 -0
  119. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeMenuPane.js +0 -0
  120. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/root_responder.js +0 -0
  121. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/targetForAction.js +46 -9
  122. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/add.js +0 -0
  123. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/copy.js +0 -0
  124. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/indexSetForSource.js +0 -0
  125. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/isEqual.js +0 -0
  126. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/remove.js +0 -0
  127. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/sparse_array.js +0 -0
  128. data/lib/frameworks/sproutcore/frameworks/amber/tests/system/theme.js +77 -0
  129. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/invalidate.js +0 -0
  130. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/invokeLater.js +7 -5
  131. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/isPaused.js +0 -0
  132. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/performAction.js +0 -0
  133. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/schedule.js +0 -0
  134. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/utils/normalizeURL.js +0 -0
  135. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/utils/rect.js +0 -0
  136. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/main_pane.js +0 -0
  137. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/append_remove.js +0 -0
  138. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/firstResponder.js +0 -0
  139. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/keyPane.js +0 -0
  140. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/layout.js +0 -0
  141. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/sendEvent.js +0 -0
  142. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/pane/sendTouchEvent.js +267 -0
  143. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/animation.js +320 -0
  144. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/build.js +85 -0
  145. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/build_children.js +89 -0
  146. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/clippingFrame.js +3 -2
  147. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/convertFrames.js +0 -0
  148. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/convertLayouts.js +0 -0
  149. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/createChildViews.js +0 -0
  150. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/createLayer.js +2 -2
  151. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/destroyLayer.js +0 -0
  152. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/didAppendToDocument.js +0 -0
  153. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/findLayerInParentLayer.js +0 -0
  154. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/init.js +0 -0
  155. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/insertBefore.js +0 -0
  156. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/isVisible.js +0 -0
  157. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/isVisibleInWindow.js +0 -0
  158. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layer.js +0 -0
  159. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutChildViews.js +0 -0
  160. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutDidChange.js +22 -0
  161. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutStyle.js +135 -64
  162. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/parentViewDidChange.js +0 -0
  163. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/prepareContext.js +16 -8
  164. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/removeChild.js +0 -0
  165. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/render.js +37 -5
  166. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/render_delegate_support.js +163 -0
  167. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/replaceChild.js +0 -0
  168. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/theme.js +43 -0
  169. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/updateLayer.js +12 -10
  170. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/updateLayerLocation.js +0 -0
  171. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/view.js +64 -0
  172. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/viewDidResize.js +0 -0
  173. data/lib/frameworks/sproutcore/frameworks/amber/views/base.js +1 -0
  174. data/lib/frameworks/sproutcore/frameworks/amber/views/layout_style.js +478 -0
  175. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/views/view.js +1719 -1029
  176. data/lib/frameworks/sproutcore/frameworks/animation/core.js +32 -18
  177. data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +10 -5
  178. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/bench.js +14 -0
  179. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +24 -17
  180. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +1 -13
  181. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +72 -0
  182. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +2 -2
  183. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +7 -3
  184. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +66 -4
  185. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +4 -1
  186. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +58 -10
  187. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +5 -14
  188. data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +4 -5
  189. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +27 -3
  190. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +5 -8
  191. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +1 -1
  192. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +30 -4
  193. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +130 -0
  194. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +2 -0
  195. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +20 -2
  196. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +9 -27
  197. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +32 -26
  198. data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +57 -11
  199. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
  200. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +78 -0
  201. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +74 -0
  202. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +24 -0
  203. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +41 -0
  204. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/helpers/slicing.js +34 -0
  205. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +30 -0
  206. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +28 -0
  207. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +47 -0
  208. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +28 -0
  209. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +43 -0
  210. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +175 -0
  211. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +74 -0
  212. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +109 -0
  213. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +70 -0
  214. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +58 -0
  215. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +39 -0
  216. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/source_list.js +8 -0
  217. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +18 -0
  218. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +29 -0
  219. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +18 -0
  220. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +79 -53
  221. data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +7 -2
  222. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +1 -1
  223. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +45 -3
  224. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +33 -13
  225. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +11 -17
  226. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +25 -0
  227. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +128 -20
  228. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +10 -10
  229. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +35 -15
  230. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +162 -0
  231. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +153 -208
  232. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +18 -48
  233. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +26 -25
  234. data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +3 -20
  235. data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +112 -0
  236. data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +74 -0
  237. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +3 -1
  238. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +388 -309
  239. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +257 -0
  240. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +8 -3
  241. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation.js +237 -0
  242. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation_bar.js +181 -0
  243. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +3 -2
  244. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +14 -76
  245. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +59 -164
  246. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +80 -47
  247. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +84 -0
  248. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +320 -289
  249. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +212 -76
  250. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +33 -36
  251. data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list.js +2 -0
  252. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +347 -248
  253. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
  254. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +1 -1
  255. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +41 -9
  256. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +1 -1
  257. data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +2 -21
  258. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +251 -0
  259. data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
  260. data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/default_styles.css +5 -0
  261. data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/strings.js +15 -0
  262. data/lib/frameworks/sproutcore/frameworks/forms/mixins/edit_mode.js +43 -0
  263. data/lib/frameworks/sproutcore/frameworks/forms/mixins/emptiness.js +95 -0
  264. data/lib/frameworks/sproutcore/frameworks/forms/renderer_delegates/form.js +22 -0
  265. data/lib/frameworks/sproutcore/frameworks/forms/renderer_delegates/form_row.js +21 -0
  266. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form.js +15 -0
  267. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_checkbox_field.js +15 -0
  268. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_field.js +15 -0
  269. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_label.js +15 -0
  270. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_radio_field.js +15 -0
  271. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_row.js +15 -0
  272. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_text_field.js +15 -0
  273. data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +280 -0
  274. data/lib/frameworks/sproutcore/frameworks/forms/views/form_row.js +183 -0
  275. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +5 -2
  276. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +0 -150
  277. data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +0 -2
  278. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/benchmark.css +146 -0
  279. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +2 -14
  280. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
  281. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore.png +0 -0
  282. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/strings.js +0 -2
  283. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +4 -6
  284. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/pinch.js +81 -0
  285. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/swipe.js +144 -0
  286. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/tap.js +113 -0
  287. data/lib/frameworks/sproutcore/frameworks/foundation/license.js +24 -26
  288. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +39 -0
  289. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +244 -0
  290. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +68 -23
  291. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +8 -2
  292. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +626 -0
  293. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +214 -0
  294. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +89 -0
  295. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +139 -0
  296. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +25 -33
  297. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/string.js +57 -209
  298. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +7 -3
  299. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +100 -0
  300. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/container.js +18 -0
  301. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +97 -0
  302. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +111 -0
  303. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +17 -0
  304. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +360 -156
  305. data/lib/frameworks/sproutcore/frameworks/{runtime → foundation}/system/cookie.js +35 -35
  306. data/lib/frameworks/sproutcore/frameworks/foundation/system/core_query.js +19 -2012
  307. data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +3 -0
  308. data/lib/frameworks/sproutcore/frameworks/foundation/system/gesture.js +363 -0
  309. data/lib/frameworks/sproutcore/frameworks/foundation/system/{image_cache.js → image_queue.js} +19 -22
  310. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +576 -0
  311. data/lib/frameworks/sproutcore/frameworks/foundation/system/request.js +19 -22
  312. data/lib/frameworks/sproutcore/frameworks/foundation/system/response.js +73 -61
  313. data/lib/frameworks/sproutcore/frameworks/foundation/system/routes.js +122 -23
  314. data/lib/frameworks/sproutcore/frameworks/foundation/system/staticqueue.js +53 -0
  315. data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +18 -15
  316. data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +82 -90
  317. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +80 -0
  318. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +76 -0
  319. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/range.js +64 -0
  320. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +247 -0
  321. data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +3 -3
  322. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +2 -2
  323. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +2 -0
  324. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/string.js +2 -57
  325. data/lib/frameworks/sproutcore/frameworks/{runtime → foundation}/tests/system/cookie.js +0 -0
  326. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +13 -3
  327. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +99 -49
  328. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +24 -20
  329. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +9 -1
  330. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +31 -6
  331. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +454 -44
  332. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +10 -1
  333. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/{view → text_field}/nextValidKeyView.js +0 -0
  334. data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +1 -0
  335. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +9 -8
  336. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +1 -3
  337. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +381 -105
  338. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +44 -171
  339. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +69 -16
  340. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +376 -0
  341. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +205 -0
  342. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +7 -0
  343. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +7179 -0
  344. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +4 -2
  345. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +1 -3
  346. data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +1 -2
  347. data/lib/frameworks/sproutcore/frameworks/mini/license.js +29 -28
  348. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +366 -333
  349. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/rangeObserver.js +73 -73
  350. data/lib/frameworks/sproutcore/frameworks/runtime/license.js +29 -28
  351. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +160 -150
  352. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +9 -9
  353. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +15 -15
  354. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +228 -220
  355. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +27 -27
  356. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +355 -305
  357. data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +32 -32
  358. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +53 -51
  359. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +49 -106
  360. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +252 -252
  361. data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +22 -22
  362. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +31 -31
  363. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +234 -234
  364. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +4 -4
  365. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +167 -157
  366. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +84 -85
  367. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +104 -91
  368. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +102 -98
  369. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +19 -49
  370. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +53 -126
  371. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +62 -33
  372. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +41 -5
  373. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +133 -98
  374. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +50 -0
  375. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +11 -11
  376. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +71 -45
  377. data/lib/frameworks/sproutcore/frameworks/statechart/core.js +3 -9
  378. data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +136 -0
  379. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +636 -99
  380. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +951 -0
  381. data/lib/frameworks/sproutcore/frameworks/statechart/tests/async.js +94 -0
  382. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/advanced_event_handling.js +310 -0
  383. data/lib/frameworks/sproutcore/frameworks/statechart/tests/namespace/access_substates.js +252 -0
  384. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/is_current_state.js +64 -0
  385. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_history_state.js +88 -0
  386. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_advanced.js +234 -0
  387. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_async.js +123 -0
  388. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_basic.js +139 -0
  389. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_intermediate.js +119 -0
  390. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/send_event.js +183 -0
  391. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/default_responder.js +90 -0
  392. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_history_state.js +200 -0
  393. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_state.js +256 -0
  394. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_state_async.js +187 -0
  395. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/send_event.js +122 -0
  396. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/state_plugin.js +99 -0
  397. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/transient.js +162 -0
  398. data/lib/frameworks/sproutcore/frameworks/table/views/table_cell.js +2 -1
  399. data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +1 -1
  400. data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +1 -1
  401. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -1
  402. data/lib/frameworks/sproutcore/lib/index.rhtml +24 -1
  403. data/lib/frameworks/sproutcore/license.js +31 -30
  404. data/lib/frameworks/sproutcore/themes/ace/designs/dark.png +0 -0
  405. data/lib/frameworks/sproutcore/themes/ace/designs/dark.psd +0 -0
  406. data/lib/frameworks/sproutcore/themes/ace/designs/light.png +0 -0
  407. data/lib/frameworks/sproutcore/themes/ace/designs/light.psd +0 -0
  408. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/active_button.psd +0 -0
  409. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/normal_button.psd +0 -0
  410. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_active_button.psd +0 -0
  411. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_button.psd +0 -0
  412. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button.psd +0 -0
  413. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_capsule.psd +0 -0
  414. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_pointer.psd +0 -0
  415. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button.psd +0 -0
  416. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_capsule.psd +0 -0
  417. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_pointer.psd +0 -0
  418. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button.psd +0 -0
  419. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_capsule.psd +0 -0
  420. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_pointer.psd +0 -0
  421. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button.psd +0 -0
  422. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_capsule.psd +0 -0
  423. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_pointer.psd +0 -0
  424. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button.psd +0 -0
  425. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button_pointer.psd +0 -0
  426. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button.psd +0 -0
  427. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button_pointer.psd +0 -0
  428. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button.psd +0 -0
  429. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button_pointer.psd +0 -0
  430. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button.psd +0 -0
  431. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button_pointer.psd +0 -0
  432. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/active_button.psd +0 -0
  433. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/normal_button.psd +0 -0
  434. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_active_button.psd +0 -0
  435. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_button.psd +0 -0
  436. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button.psd +0 -0
  437. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_capsule.psd +0 -0
  438. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_pointer.psd +0 -0
  439. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button.psd +0 -0
  440. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_capsule.psd +0 -0
  441. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_pointer.psd +0 -0
  442. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button.psd +0 -0
  443. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_capsule.psd +0 -0
  444. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_pointer.psd +0 -0
  445. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button.psd +0 -0
  446. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_capsule.psd +0 -0
  447. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_pointer.psd +0 -0
  448. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button.psd +0 -0
  449. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button_pointer.psd +0 -0
  450. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button.psd +0 -0
  451. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button_pointer.psd +0 -0
  452. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button.psd +0 -0
  453. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button_pointer.psd +0 -0
  454. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button.psd +0 -0
  455. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button_pointer.psd +0 -0
  456. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/active_select.psd +0 -0
  457. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/normal_select.psd +0 -0
  458. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
  459. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
  460. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
  461. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
  462. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
  463. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
  464. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
  465. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
  466. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
  467. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
  468. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
  469. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
  470. data/lib/frameworks/sproutcore/themes/ace/designs/psds/collection/source-list/selection.psd +0 -0
  471. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed.psd +0 -0
  472. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed_active.psd +0 -0
  473. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open.psd +0 -0
  474. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open_active.psd +0 -0
  475. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark.psd +0 -0
  476. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark_active.psd +0 -0
  477. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/down.psd +0 -0
  478. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu.psd +0 -0
  479. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
  480. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/up.psd +0 -0
  481. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/panel.psd +0 -0
  482. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover.psd +0 -0
  483. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_empty.psd +0 -0
  484. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_notoolbar.psd +0 -0
  485. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers.psd +0 -0
  486. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers_notoolbar.psd +0 -0
  487. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_content.psd +0 -0
  488. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_indeterminate_content.psd +0 -0
  489. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_track.psd +0 -0
  490. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_active.psd +0 -0
  491. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed.psd +0 -0
  492. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed_active.psd +0 -0
  493. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected.psd +0 -0
  494. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected_active.psd +0 -0
  495. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_unselected.psd +0 -0
  496. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/thumb.psd +0 -0
  497. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows.psd +0 -0
  498. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows_active.psd +0 -0
  499. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/thumb.psd +0 -0
  500. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows.psd +0 -0
  501. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows_active.psd +0 -0
  502. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_active.psd +0 -0
  503. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_normal.psd +0 -0
  504. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected.psd +0 -0
  505. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected_active.psd +0 -0
  506. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_active.psd +0 -0
  507. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_normal.psd +0 -0
  508. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected.psd +0 -0
  509. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected_active.psd +0 -0
  510. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_active.psd +0 -0
  511. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_normal.psd +0 -0
  512. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected.psd +0 -0
  513. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected_active.psd +0 -0
  514. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_active.psd +0 -0
  515. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_normal.psd +0 -0
  516. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected.psd +0 -0
  517. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected_active.psd +0 -0
  518. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob.psd +0 -0
  519. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob_active.psd +0 -0
  520. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob.psd +0 -0
  521. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob_active.psd +0 -0
  522. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob.psd +0 -0
  523. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob_active.psd +0 -0
  524. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/track.psd +0 -0
  525. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/track.psd +0 -0
  526. data/lib/frameworks/sproutcore/themes/ace/designs/psds/toolbar/toolbar.psd +0 -0
  527. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch.psd +0 -0
  528. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.png +0 -0
  529. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.psd +0 -0
  530. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.png +0 -0
  531. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.psd +0 -0
  532. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.png +0 -0
  533. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.psd +0 -0
  534. data/lib/frameworks/sproutcore/themes/ace/resources/body.css +13 -0
  535. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/active_button.png +0 -0
  536. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +27 -0
  537. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/normal_button.png +0 -0
  538. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_active_button.png +0 -0
  539. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_button.png +0 -0
  540. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button.png +0 -0
  541. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_capsule.png +0 -0
  542. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_pointer.png +0 -0
  543. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +84 -0
  544. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button.png +0 -0
  545. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_capsule.png +0 -0
  546. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_pointer.png +0 -0
  547. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button.png +0 -0
  548. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_capsule.png +0 -0
  549. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_pointer.png +0 -0
  550. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button.png +0 -0
  551. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_capsule.png +0 -0
  552. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_pointer.png +0 -0
  553. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button.png +0 -0
  554. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button_pointer.png +0 -0
  555. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +66 -0
  556. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button.png +0 -0
  557. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button_pointer.png +0 -0
  558. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button.png +0 -0
  559. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button_pointer.png +0 -0
  560. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button.png +0 -0
  561. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button_pointer.png +0 -0
  562. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button.png +0 -0
  563. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +34 -0
  564. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button.png +0 -0
  565. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button.png +0 -0
  566. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button.png +0 -0
  567. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/button.css +28 -0
  568. data/lib/frameworks/sproutcore/themes/ace/resources/button/button.js +69 -0
  569. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button.png +0 -0
  570. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_capsule.png +0 -0
  571. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_pointer.png +0 -0
  572. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +84 -0
  573. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button.png +0 -0
  574. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_capsule.png +0 -0
  575. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_pointer.png +0 -0
  576. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button.png +0 -0
  577. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_capsule.png +0 -0
  578. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_pointer.png +0 -0
  579. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button.png +0 -0
  580. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_capsule.png +0 -0
  581. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_pointer.png +0 -0
  582. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button.png +0 -0
  583. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button_pointer.png +0 -0
  584. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +66 -0
  585. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button.png +0 -0
  586. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button_pointer.png +0 -0
  587. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button.png +0 -0
  588. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button_pointer.png +0 -0
  589. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button.png +0 -0
  590. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button_pointer.png +0 -0
  591. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.css +17 -0
  592. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.js +3 -0
  593. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/active_select.png +0 -0
  594. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/normal_select.png +0 -0
  595. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +20 -0
  596. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox.css +40 -0
  597. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
  598. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
  599. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
  600. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
  601. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
  602. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
  603. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox.css +40 -0
  604. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
  605. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
  606. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
  607. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
  608. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
  609. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
  610. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/checkbox.css +7 -0
  611. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +4 -0
  612. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +17 -0
  613. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/selection.png +0 -0
  614. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source-list.js +3 -0
  615. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source_list_view.css +36 -0
  616. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +24 -0
  617. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed.png +0 -0
  618. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed_active.png +0 -0
  619. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open.png +0 -0
  620. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open_active.png +0 -0
  621. data/lib/frameworks/sproutcore/themes/ace/resources/loading.css +50 -0
  622. data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +27 -0
  623. data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark.png +0 -0
  624. data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark_active.png +0 -0
  625. data/lib/frameworks/sproutcore/themes/ace/resources/menu/down.png +0 -0
  626. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +76 -0
  627. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.png +0 -0
  628. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
  629. data/lib/frameworks/sproutcore/themes/ace/resources/menu/up.png +0 -0
  630. data/lib/frameworks/sproutcore/themes/ace/resources/pane/pane.css +3 -0
  631. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.css +13 -0
  632. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.js +20 -0
  633. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
  634. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
  635. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +32 -0
  636. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +111 -0
  637. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.js +12 -0
  638. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.png +0 -0
  639. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_empty.png +0 -0
  640. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_notoolbar.png +0 -0
  641. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers.png +0 -0
  642. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers_notoolbar.png +0 -0
  643. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +28 -0
  644. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress.css +27 -0
  645. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_content.png +0 -0
  646. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_track.png +0 -0
  647. data/lib/frameworks/sproutcore/themes/ace/resources/progress/progress.js +78 -0
  648. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio.css +63 -0
  649. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_active.png +0 -0
  650. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed.png +0 -0
  651. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed_active.png +0 -0
  652. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected.png +0 -0
  653. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected_active.png +0 -0
  654. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_unselected.png +0 -0
  655. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal.css +78 -0
  656. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_touch.css +91 -0
  657. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/thumb.png +0 -0
  658. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows.png +0 -0
  659. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows_active.png +0 -0
  660. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/thumb.png +0 -0
  661. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows.png +0 -0
  662. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows_active.png +0 -0
  663. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical.css +80 -0
  664. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_touch.css +92 -0
  665. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +91 -0
  666. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_active.png +0 -0
  667. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_normal.png +0 -0
  668. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected.png +0 -0
  669. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected_active.png +0 -0
  670. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +91 -0
  671. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_active.png +0 -0
  672. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_normal.png +0 -0
  673. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected.png +0 -0
  674. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected_active.png +0 -0
  675. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -0
  676. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_active.png +0 -0
  677. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_normal.png +0 -0
  678. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected.png +0 -0
  679. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected_active.png +0 -0
  680. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +95 -0
  681. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_active.png +0 -0
  682. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_normal.png +0 -0
  683. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected.png +0 -0
  684. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected_active.png +0 -0
  685. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +79 -0
  686. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob.png +0 -0
  687. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob_active.png +0 -0
  688. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/slider.css +27 -0
  689. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob.png +0 -0
  690. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob_active.png +0 -0
  691. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/slider.css +27 -0
  692. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob.png +0 -0
  693. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob_active.png +0 -0
  694. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/slider.css +27 -0
  695. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/track.png +0 -0
  696. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +3 -0
  697. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.js +48 -0
  698. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/track.png +0 -0
  699. data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +5 -0
  700. data/lib/frameworks/sproutcore/themes/ace/resources/tab/tab.css +3 -0
  701. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +8 -0
  702. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.png +0 -0
  703. data/lib/frameworks/sproutcore/themes/ace/resources/well/well.css +8 -0
  704. data/lib/frameworks/sproutcore/themes/ace/resources/well/well.js +19 -0
  705. data/lib/frameworks/sproutcore/themes/ace/theme.js +14 -0
  706. data/lib/frameworks/sproutcore/themes/empty_theme/theme.js +16 -0
  707. data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +16 -21
  708. data/lib/sproutcore.rb +9 -2
  709. data/lib/sproutcore/builders.rb +2 -1
  710. data/lib/sproutcore/builders/base.rb +7 -2
  711. data/lib/sproutcore/builders/combine.rb +49 -1
  712. data/lib/sproutcore/builders/html.rb +2 -0
  713. data/lib/sproutcore/builders/javascript.rb +1 -1
  714. data/lib/sproutcore/builders/minify.rb +12 -12
  715. data/lib/sproutcore/builders/module.rb +72 -0
  716. data/lib/sproutcore/builders/string_wrapper.rb +43 -0
  717. data/lib/sproutcore/helpers/entry_sorter.rb +5 -9
  718. data/lib/sproutcore/helpers/static_helper.rb +13 -9
  719. data/lib/sproutcore/models/manifest_entry.rb +2 -2
  720. data/lib/sproutcore/models/target.rb +25 -11
  721. data/lib/sproutcore/rack/dev.rb +3 -3
  722. data/lib/sproutcore/tools.rb +51 -2
  723. data/lib/sproutcore/tools/build.rb +35 -7
  724. data/lib/sproutcore/version.rb +1 -0
  725. data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +5 -5
  726. data/spec/fixtures/builder_tests/Buildfile +2 -2
  727. data/spec/lib/builders/bundle_spec.rb +8 -8
  728. data/spec/lib/builders/strings_spec.rb +1 -0
  729. data/sproutcore.gemspec +9 -2
  730. data/vendor/chance/.gitignore +5 -0
  731. data/vendor/chance/Gemfile +4 -0
  732. data/vendor/chance/Rakefile +2 -0
  733. data/vendor/chance/bin/chance +72 -0
  734. data/vendor/chance/chance.gemspec +28 -0
  735. data/vendor/chance/lib/chance.rb +139 -0
  736. data/vendor/chance/lib/chance/imager.rb +13 -0
  737. data/vendor/chance/lib/chance/imagers/data_url.rb +34 -0
  738. data/vendor/chance/lib/chance/importer.rb +64 -0
  739. data/vendor/chance/lib/chance/instance.rb +225 -0
  740. data/vendor/chance/lib/chance/parser.rb +831 -0
  741. data/vendor/chance/lib/chance/perf.rb +17 -0
  742. data/vendor/chance/lib/chance/sass_extensions.rb +24 -0
  743. data/vendor/chance/lib/chance/slicing.rb +104 -0
  744. data/vendor/chance/lib/chance/version.rb +3 -0
  745. data/vendor/chance/test/case/abc.png +0 -0
  746. data/vendor/chance/test/case/more/abc.png +0 -0
  747. data/vendor/chance/test/case/more/another.css +4 -0
  748. data/vendor/chance/test/case/test1.css +22 -0
  749. data/vendor/chance/test/case/test2.css +6 -0
  750. data/vendor/sproutcore/SCCompiler.jar +0 -0
  751. data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
  752. data/vendor/sproutcore/lib/htmlcompressor-0.9.3.jar +0 -0
  753. data/{lib/sproutcore/vendor/yui-compressor → vendor/sproutcore/lib}/yuicompressor-2.4.2.jar +0 -0
  754. data/vendor/sproutcore/src/SCCompiler/build.xml +74 -0
  755. data/vendor/sproutcore/src/SCCompiler/lib/args4j-2.0.12.jar +0 -0
  756. data/vendor/sproutcore/src/SCCompiler/lib/htmlcompressor-0.9.3.jar +0 -0
  757. data/{lib/sproutcore/vendor/yui-compressor/SCyuicompressor-2.4.2.jar → vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.2.jar} +0 -0
  758. data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.4.jar +0 -0
  759. data/vendor/sproutcore/src/SCCompiler/manifest.mf +3 -0
  760. data/vendor/sproutcore/src/SCCompiler/nbproject/build-impl.xml +894 -0
  761. data/vendor/sproutcore/src/SCCompiler/nbproject/genfiles.properties +8 -0
  762. data/vendor/sproutcore/src/SCCompiler/nbproject/private/config.properties +0 -0
  763. data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.properties +10 -0
  764. data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.xml +4 -0
  765. data/vendor/sproutcore/src/SCCompiler/nbproject/project.properties +90 -0
  766. data/vendor/sproutcore/src/SCCompiler/nbproject/project.xml +15 -0
  767. data/vendor/sproutcore/src/SCCompiler/src/com/sproutcore/Main.java +348 -0
  768. metadata +686 -177
  769. data/lib/frameworks/sproutcore/CHANGELOG +0 -93
  770. data/lib/frameworks/sproutcore/frameworks/datejs/core.js +0 -865
  771. data/lib/frameworks/sproutcore/frameworks/datejs/english.lproj/en-US.js +0 -186
  772. data/lib/frameworks/sproutcore/frameworks/datejs/extras.js +0 -332
  773. data/lib/frameworks/sproutcore/frameworks/datejs/license.js +0 -25
  774. data/lib/frameworks/sproutcore/frameworks/datejs/parser.js +0 -1116
  775. data/lib/frameworks/sproutcore/frameworks/datejs/spanish.lproj/es-CO.js +0 -186
  776. data/lib/frameworks/sproutcore/frameworks/datejs/sugarpak.js +0 -475
  777. data/lib/frameworks/sproutcore/frameworks/datejs/time.js +0 -269
  778. data/lib/frameworks/sproutcore/frameworks/datejs/validators/datejs.js +0 -34
  779. data/lib/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +0 -84
  780. data/lib/frameworks/sproutcore/frameworks/foundation/system/bundle.js +0 -337
  781. data/lib/frameworks/sproutcore/frameworks/foundation/system/ready.js +0 -197
  782. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils.js +0 -710
  783. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +0 -1334
  784. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +0 -387
  785. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +0 -405
  786. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +0 -25
  787. data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart.js +0 -336
  788. data/lib/frameworks/sproutcore/frameworks/statechart/tests/basic.js +0 -90
  789. data/lib/frameworks/sproutcore/frameworks/statechart/tests/history.js +0 -71
  790. data/lib/frameworks/sproutcore/frameworks/statechart/tests/nested.js +0 -59
  791. data/lib/frameworks/sproutcore/frameworks/statechart/tests/transient.js +0 -148
  792. data/lib/sproutcore/builders/bundle.rb +0 -63
@@ -7,13 +7,16 @@
7
7
 
8
8
  /** @class
9
9
 
10
- Renders a checkbox button view specifically.
10
+ Represents a Checkbox Button.
11
11
 
12
- This view is basically a button view preconfigured to generate the correct
13
- HTML and to set to use a TOGGLE_BEHAVIOR for its buttons.
12
+ The view is an SC.ButtonView put into toggle mode and with the 'theme' property
13
+ set to "checkbox".
14
14
 
15
- This view renders a simulated checkbox that can display a mixed state and
16
- has other features not found in platform-native controls.
15
+ Rendering
16
+ ----------------------------
17
+ SC.ButtonView delegates its rendering to its theme. As the theme is set
18
+ to "checkbox", the way the checkbox renders (including DOM) will actually
19
+ be different than SC.ButtonView's.
17
20
 
18
21
  @extends SC.FieldView
19
22
  @since SproutCore 1.0
@@ -21,49 +24,16 @@
21
24
  SC.CheckboxView = SC.ButtonView.extend(SC.StaticLayout, SC.Button,
22
25
  /** @scope SC.CheckboxView.prototype */ {
23
26
 
24
- classNames: ['sc-checkbox-view'],
27
+ classNames: ['sc-checkbox-view', 'sc-checkbox-control'],
25
28
  tagName: 'label',
29
+ ariaRole: 'checkbox',
30
+
31
+ // no special theme for Checkbox; button defaults to 'square', so we have to stop that.
32
+ themeName: null,
33
+ renderDelegateName: 'checkboxRenderDelegate',
26
34
 
27
35
  /* Ellipsis is disabled by default to allow multiline text */
28
36
  needsEllipsis: NO,
29
-
30
- render: function(context, firstTime) {
31
- var dt, elem,
32
- value = this.get('value'),
33
- ariaValue = value === SC.MIXED_MODE ?
34
- 'mixed' : (value === this.get('toggleOnValue') ?
35
- 'true': 'false');
36
-
37
- // add checkbox -- set name to view guid to separate it from others
38
- if (firstTime) {
39
- var blank = SC.BLANK_IMAGE_URL,
40
- disabled = this.get('isEnabled') ? '' : 'disabled="disabled"',
41
- guid = SC.guidFor(this);
42
-
43
- context.attr('role', 'checkbox');
44
- dt = this._field_currentDisplayTitle = this.get('displayTitle');
45
-
46
- if(SC.browser.msie) context.attr('for', guid);
47
- context.push('<span class="button" ></span>');
48
- if(this.get('needsEllipsis')){
49
- context.push('<span class="label ellipsis">', dt, '</span>');
50
- }else{
51
- context.push('<span class="label">', dt, '</span>');
52
- }
53
- context.attr('name', guid);
54
-
55
- // since we don't want to regenerate the contents each time
56
- // actually search for and update the displayTitle.
57
- } else {
58
-
59
- dt = this.get('displayTitle');
60
- if (dt !== this._field_currentDisplayTitle) {
61
- this._field_currentDisplayTitle = dt;
62
- this.$('span.label').text(dt);
63
- }
64
- }
65
- context.attr('aria-checked', ariaValue);
66
- },
67
37
 
68
38
  acceptsFirstResponder: function() {
69
39
  if(!SC.SAFARI_FOCUS_BEHAVIOR) return this.get('isEnabled');
@@ -82,21 +52,21 @@ SC.CheckboxView = SC.ButtonView.extend(SC.StaticLayout, SC.Button,
82
52
  },
83
53
 
84
54
  mouseUp: function(evt) {
55
+ this.set('isActive', NO);
56
+ this._isMouseDown = NO;
57
+
85
58
  if(!this.get('isEnabled') ||
86
59
  (evt && evt.target && !this.$().within(evt.target))) {
87
60
  return YES;
88
61
  }
89
62
  var val = this.get('value');
90
63
  if (val === this.get('toggleOnValue')) {
91
- this.$().attr('aria-checked', 'false');
64
+
92
65
  this.set('value', this.get('toggleOffValue'));
93
66
  }
94
67
  else {
95
- this.$().attr('aria-checked', 'true');
96
68
  this.set('value', this.get('toggleOnValue'));
97
69
  }
98
- this.set('isActive', NO);
99
- this._isMouseDown = NO;
100
70
  return YES;
101
71
  },
102
72
 
@@ -1004,19 +1004,7 @@ SC.CollectionView = SC.View.extend(
1004
1004
  },
1005
1005
 
1006
1006
  displayProperties: 'isFirstResponder isEnabled isActive'.w(),
1007
-
1008
- /** @private
1009
- If we're asked to render the receiver view for the first time but the
1010
- child views still need to be added, go ahead and add them.
1011
- */
1012
- render: function(context, firstTime) {
1013
- // add classes for other state.
1014
- context.setClass('focus', this.get('isFirstResponder'));
1015
- context.setClass('disabled', !this.get('isEnabled'));
1016
- context.setClass('active', this.get('isActive'));
1017
-
1018
- return sc_super();
1019
- },
1007
+ renderDelegateName: 'collectionRenderDelegate',
1020
1008
 
1021
1009
 
1022
1010
  _TMP_ATTRS: {},
@@ -2311,9 +2299,7 @@ SC.CollectionView = SC.View.extend(
2311
2299
  // ..........................................................
2312
2300
  // TOUCH EVENTS
2313
2301
  //
2314
-
2315
- touchStart: function(ev) {
2316
-
2302
+ touchStart: function(touch, evt) {
2317
2303
  // When the user presses the mouse down, we don't do much just yet.
2318
2304
  // Instead, we just need to save a bunch of state about the mouse down
2319
2305
  // so we can choose the right thing to do later.
@@ -2324,16 +2310,15 @@ SC.CollectionView = SC.View.extend(
2324
2310
  // find the actual view the mouse was pressed down on. This will call
2325
2311
  // hitTest() on item views so they can implement non-square detection
2326
2312
  // modes. -- once we have an item view, get its content object as well.
2327
- var itemView = this.itemViewForEvent(ev),
2313
+ var itemView = this.itemViewForEvent(touch),
2328
2314
  content = this.get('content'),
2329
2315
  contentIndex = itemView ? itemView.get('contentIndex') : -1,
2330
2316
  info, anchor ;
2331
-
2317
+
2332
2318
  // become first responder if possible.
2333
2319
  this.becomeFirstResponder() ;
2334
- this.select(contentIndex, NO);
2335
2320
 
2336
- this._cv_performSelectAction(this, ev);
2321
+ this.invokeLater("select", 1, contentIndex);
2337
2322
 
2338
2323
  return YES;
2339
2324
  },
@@ -2350,6 +2335,13 @@ SC.CollectionView = SC.View.extend(
2350
2335
  }, this);
2351
2336
 
2352
2337
  },
2338
+
2339
+ touchEnd: function(touch) {
2340
+ var itemView = this.itemViewForEvent(touch);
2341
+
2342
+ // If actOnSelect is implemented, the action will be fired.
2343
+ this._cv_performSelectAction(itemView, touch, 0);
2344
+ },
2353
2345
 
2354
2346
  touchCancelled: function(evt) {
2355
2347
  this.select(null, NO);
@@ -2544,11 +2536,12 @@ SC.CollectionView = SC.View.extend(
2544
2536
  */
2545
2537
  _cv_dragViewFor: function(dragContent) {
2546
2538
  // find only the indexes that are in both dragContent and nowShowing.
2547
- var indexes = this.get('nowShowing').without(dragContent);
2539
+ var indexes = this.get('nowShowing').without(dragContent),
2540
+ dragLayer = this.get('layer').cloneNode(false),
2541
+ view = SC.View.create({ layer: dragLayer, parentView: this }),
2542
+ height=0, layout;
2543
+
2548
2544
  indexes = this.get('nowShowing').without(indexes);
2549
-
2550
- var dragLayer = this.get('layer').cloneNode(false);
2551
- var view = SC.View.create({ layer: dragLayer, parentView: this });
2552
2545
 
2553
2546
  // cleanup weird stuff that might make the drag look out of place
2554
2547
  SC.$(dragLayer).css('backgroundColor', 'transparent')
@@ -2572,10 +2565,18 @@ SC.CollectionView = SC.View.extend(
2572
2565
  itemView.updateLayerIfNeeded();
2573
2566
  }
2574
2567
 
2575
- if (layer) dragLayer.appendChild(layer);
2568
+ if (layer) {
2569
+ dragLayer.appendChild(layer);
2570
+ layout = itemView.get('layout');
2571
+ if(layout.height+layout.top>height){
2572
+ height = layout.height+layout.top;
2573
+ }
2574
+ }
2576
2575
  layer = null;
2577
2576
 
2578
2577
  }, this);
2578
+ // we don't want to show the scrollbars, resize the dragview'
2579
+ view.set('layout', {height:height});
2579
2580
 
2580
2581
  dragLayer = null;
2581
2582
  return view ;
@@ -22,7 +22,8 @@ SC.DisclosureView = SC.ButtonView.extend(
22
22
 
23
23
  classNames: ['sc-disclosure-view'],
24
24
 
25
- theme: 'disclosure',
25
+ renderDelegateName: 'disclosureRenderDelegate',
26
+
26
27
  buttonBehavior: SC.TOGGLE_BEHAVIOR,
27
28
 
28
29
  /**
@@ -38,28 +39,10 @@ SC.DisclosureView = SC.ButtonView.extend(
38
39
 
39
40
  /** @private */
40
41
  valueBindingDefault: SC.Binding.bool() ,
41
-
42
- /** @private */
43
- render: function(context, firstTime) {
44
- var title = this.get('displayTitle');
45
- if(firstTime) {
46
- context.push('<img src="', SC.BLANK_IMAGE_URL, '" class="button" alt="" />');
47
- if(this.get('needsEllipsis')) {
48
- context.push('<span class="ellipsis sc-button-label">',title,'</span>');
49
- }
50
- else {
51
- context.push('<span class="sc-button-label">', title,'</span>');
52
- }
53
- }
54
- else {
55
- this.$('label').text(title);
56
- }
57
- },
58
-
42
+
59
43
  /**
60
44
  Allows toggling of the value with the right and left arrow keys.
61
45
  Extends the behavior inherted from SC.ButtonView.
62
-
63
46
  @param evt
64
47
  */
65
48
  keyDown: function(evt) {
@@ -0,0 +1,112 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2006-2011 Strobe Inc. and contributors.
4
+ // Portions ©2008-2009 Apple Inc. All rights reserved.
5
+ // License: Licensed under MIT license (see license.js)
6
+ // ==========================================================================
7
+ /** @class
8
+
9
+ Implements a customized file input by creating a standard file input in a
10
+ transparent iframe over top of a SC.ButtonView.
11
+
12
+ // TODO: revisit this to see if these classnames are usable
13
+ SC.FieldView uses the SC.Control mixin which will apply CSS
14
+ classnames when the state of the file view changes:
15
+ - active when button is active
16
+ - sel when button is toggled to a selected state
17
+
18
+ @extends SC.FieldView
19
+ @since SproutCore 1.0
20
+ @author Tyler Keating
21
+ */
22
+ SC.FileView = SC.FieldView.extend(
23
+ /** @scope SC.FileView.prototype */
24
+ {
25
+
26
+ classNames: 'sc-file-view'.w(),
27
+
28
+ autoSubmit: YES,
29
+
30
+ /**
31
+ The name of the action you want triggered when the button is pressed.
32
+
33
+ This property is used in conjunction with the target property to execute
34
+ a method when a regular button is pressed. These properties are not
35
+ relevant when the button is used in toggle mode.
36
+
37
+ If you do not set a target, then pressing a button will cause the
38
+ responder chain to search for a view that implements the action you name
39
+ here. If you set a target, then the button will try to call the method
40
+ on the target itself.
41
+
42
+ For legacy support, you can also set the action property to a function.
43
+ Doing so will cause the function itself to be called when the button is
44
+ clicked. It is generally better to use the target/action approach and
45
+ to implement your code in a controller of some type.
46
+
47
+ @property {String}
48
+ */
49
+ action: 'uploadImage',
50
+
51
+ /**
52
+ The target object to invoke the action on when the button is pressed.
53
+
54
+ If you set this target, the action will be called on the target object
55
+ directly when the button is clicked. If you leave this property set to
56
+ null, then the button will search the responder chain for a view that
57
+ implements the action when the button is pressed instead.
58
+
59
+ @property {Object}
60
+ */
61
+ target: null,
62
+
63
+ childViews: 'button form'.w(),
64
+
65
+ button: SC.ButtonView.design({
66
+ title: 'Choose File',
67
+ theme: 'capsule'
68
+ }),
69
+
70
+ form: SC.View.design({
71
+ tagName: 'form',
72
+
73
+ render: function(context, firstTime) {
74
+ context.attr('method', 'post').attr('action', "javascript:;").attr('enctype', 'multipart/form-data');
75
+ sc_super();
76
+ },
77
+
78
+ childViews: 'input'.w(),
79
+
80
+ input: SC.View.design({
81
+ tagName: 'input',
82
+
83
+ render: function(context, firstTime) {
84
+ context.attr('type', 'file').end();
85
+ sc_super();
86
+ }
87
+ })
88
+ }),
89
+
90
+ /** SC.Button **/
91
+ title: 'Choose File',
92
+
93
+ /** SC.FieldView **/
94
+
95
+ /**
96
+ Since it is impossible to set the value of file inputs, don't attempt it.
97
+
98
+ */
99
+ setFieldValue: function(newValue) {
100
+ console.log("SC.FileView: setFieldValue: %@ does nothing".fmt(newValue));
101
+ //if (newValue) throw SC.$error('SC.FileView can not set the value of the file field');
102
+ },
103
+
104
+ fieldValueDidChange: function(partialChange) {
105
+ sc_super();
106
+ if (this.get('autoSubmit')) {
107
+ //this.form.submit();
108
+
109
+ var resp = SC.Request.postUrl('/proxy/user/update_image').json().async(NO).send({picture: this.get('value')});
110
+ }
111
+ }
112
+ });
@@ -0,0 +1,74 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2006-2011 Strobe Inc. and contributors.
4
+ // Portions ©2008-2010 Apple Inc. All rights reserved.
5
+ // License: Licensed under MIT license (see license.js)
6
+ // ==========================================================================
7
+
8
+ /** @class
9
+
10
+ Provides a button that displays an image instead of the standard button
11
+ user interface.
12
+
13
+ It behaves the same as an SC.ButtonView, but has an image property that
14
+ should be set to a unique class name.
15
+
16
+ For example:
17
+
18
+ SC.ImageButtonView.create({
19
+ action: 'imageButtonWasClicked',
20
+
21
+ image: 'image-button-icon'
22
+ });
23
+
24
+ You could then add some CSS rule for a normal state:
25
+
26
+ .sc-image-button-view .image-button-icon {
27
+ background: sc_static('image-button-image');
28
+ }
29
+
30
+ And an active state:
31
+
32
+ .sc-image-button-view.active .image-button-icon {
33
+ background: sc_static('image-button-image-active');
34
+ }
35
+
36
+ @extends SC.View
37
+ @extends SC.Control
38
+ @extends SC.ButtonView
39
+ @since SproutCore 1.5
40
+ */
41
+ SC.ImageButtonView = SC.ButtonView.extend(
42
+ /** @scope SC.ImageButtonView.prototype */ {
43
+
44
+ /**
45
+ Class names that will be applied to this view
46
+
47
+ @property {Array}
48
+ */
49
+ classNames: ['sc-image-button-view'],
50
+
51
+ /**
52
+ Unlike SC.ButtonView, SC.ImageButtonView does not have a default theme
53
+ that needs to be applied for backwards compatibility.
54
+
55
+ @property {String}
56
+ */
57
+ themeName: null,
58
+
59
+ /**
60
+ The name of the theme's SC.ImageButtonView render delegate.
61
+
62
+ @property {String}
63
+ */
64
+ renderDelegateName: 'imageButtonRenderDelegate',
65
+
66
+ displayProperties: ['image'],
67
+
68
+ /**
69
+ A class name that will be applied to the img tag of the button.
70
+
71
+ @property {String}
72
+ */
73
+ image: null
74
+ }) ;
@@ -324,9 +324,11 @@ SC.ListView = SC.CollectionView.extend(
324
324
 
325
325
  */
326
326
  layoutForContentIndex: function(contentIndex) {
327
+ var del = this.get('rowDelegate');
328
+
327
329
  return {
328
330
  top: this.rowOffsetForContentIndex(contentIndex),
329
- height: this.rowHeightForContentIndex(contentIndex),
331
+ height: this.rowHeightForContentIndex(contentIndex) - del.get('rowPadding') * 2,
330
332
  left: 0,
331
333
  right: 0
332
334
  };
@@ -32,6 +32,13 @@ SC.ListItemView = SC.View.extend(
32
32
 
33
33
  classNames: ['sc-list-item-view'],
34
34
 
35
+ displayProperties: ['disclosureState', 'escapeHTML'],
36
+
37
+
38
+ init: function() {
39
+ sc_super();
40
+ },
41
+
35
42
  // ..........................................................
36
43
  // KEY PROPERTIES
37
44
  //
@@ -76,6 +83,12 @@ SC.ListItemView = SC.View.extend(
76
83
  */
77
84
  contentCheckboxKey: null,
78
85
 
86
+ /**
87
+ The URL or CSS class name to use for the icon. This is only used if
88
+ contentIconKey is null, or returns null from the delegate.
89
+ */
90
+ icon: null,
91
+
79
92
  /**
80
93
  (displayDelegate) Property key to use for the icon url
81
94
 
@@ -84,6 +97,12 @@ SC.ListItemView = SC.View.extend(
84
97
  */
85
98
  contentIconKey: null,
86
99
 
100
+ /**
101
+ The URL or CSS class name to use for the right icon. This is only used if
102
+ contentRightIconKey is null, or returns null from the delegate.
103
+ */
104
+ rightIcon: null,
105
+
87
106
  /**
88
107
  (displayDelegate) Property key to use for the right icon url
89
108
 
@@ -174,207 +193,6 @@ SC.ListItemView = SC.View.extend(
174
193
  return content && (content.get ? content.get('isEditable')!==NO : NO);
175
194
  }.property('content').cacheable(),
176
195
 
177
- /**
178
- Fills the passed html-array with strings that can be joined to form the
179
- innerHTML of the receiver element. Also populates an array of classNames
180
- to set on the outer element.
181
-
182
- @param {SC.RenderContext} context
183
- @param {Boolean} firstTime
184
- @returns {void}
185
- */
186
- render: function(context, firstTime) {
187
- var content = this.get('content'),
188
- del = this.displayDelegate,
189
- level = this.get('outlineLevel'),
190
- indent = this.get('outlineIndent'),
191
- key, value, working, classArray = [];
192
-
193
- // add alternating row classes
194
- classArray.push((this.get('contentIndex')%2 === 0) ? 'even' : 'odd');
195
- context.setClass('disabled', !this.get('isEnabled'));
196
-
197
- // outline level wrapper
198
- working = context.begin("div").addClass("sc-outline");
199
- if (level>=0 && indent>0) working.addStyle("left", indent*(level+1));
200
-
201
- // handle disclosure triangle
202
- value = this.get('disclosureState');
203
- if (value !== SC.LEAF_NODE) {
204
- this.renderDisclosure(working, value);
205
- classArray.push('has-disclosure');
206
- }
207
-
208
-
209
- // handle checkbox
210
- key = this.getDelegateProperty('contentCheckboxKey', del) ;
211
- if (key) {
212
- value = content ? (content.get ? content.get(key) : content[key]) : NO ;
213
- this.renderCheckbox(working, value);
214
- classArray.push('has-checkbox');
215
- }
216
-
217
- // handle icon
218
- if (this.getDelegateProperty('hasContentIcon', del)) {
219
- key = this.getDelegateProperty('contentIconKey', del) ;
220
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
221
-
222
- this.renderIcon(working, value);
223
- classArray.push('has-icon');
224
- }
225
-
226
- // handle label -- always invoke
227
- key = this.getDelegateProperty('contentValueKey', del) ;
228
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : content ;
229
- if (value && SC.typeOf(value) !== SC.T_STRING) value = value.toString();
230
- if (this.get('escapeHTML')) value = SC.RenderContext.escapeHTML(value);
231
- this.renderLabel(working, value);
232
-
233
- // handle right icon
234
- if (this.getDelegateProperty('hasContentRightIcon', del)) {
235
- key = this.getDelegateProperty('contentRightIconKey', del) ;
236
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
237
-
238
- this.renderRightIcon(working, value);
239
- classArray.push('has-right-icon');
240
- }
241
-
242
- // handle unread count
243
- key = this.getDelegateProperty('contentUnreadCountKey', del) ;
244
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
245
- if (!SC.none(value) && (value !== 0)) {
246
- this.renderCount(working, value) ;
247
- var digits = ['zero', 'one', 'two', 'three', 'four', 'five'];
248
- var valueLength = value.toString().length;
249
- var digitsLength = digits.length;
250
- var digit = (valueLength < digitsLength) ? digits[valueLength] : digits[digitsLength-1];
251
- classArray.push('has-count '+digit+'-digit');
252
- }
253
-
254
- // handle action
255
- key = this.getDelegateProperty('listItemActionProperty', del) ;
256
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
257
- if (value) {
258
- this.renderAction(working, value);
259
- classArray.push('has-action');
260
- }
261
-
262
- // handle branch
263
- if (this.getDelegateProperty('hasContentBranch', del)) {
264
- key = this.getDelegateProperty('contentIsBranchKey', del);
265
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : NO ;
266
- this.renderBranch(working, value);
267
- classArray.push('has-branch');
268
- }
269
- context.addClass(classArray);
270
- context = working.end();
271
- },
272
-
273
- /**
274
- Adds a disclosure triangle with the appropriate display to the content.
275
- This method will only be called if the disclosure state of the view is
276
- something other than SC.LEAF_NODE.
277
-
278
- @param {SC.RenderContext} context the render context
279
- @param {Boolean} state YES, NO or SC.MIXED_STATE
280
- @returns {void}
281
- */
282
- renderDisclosure: function(context, state) {
283
- var key = (state === SC.BRANCH_OPEN) ? "open" : "closed",
284
- cache = this._scli_disclosureHtml,
285
- html, tmp;
286
-
287
- if (!cache) cache = this.constructor.prototype._scli_disclosureHtml = {};
288
- html = cache[key];
289
-
290
- if (!html) {
291
- html = cache[key] = '<img src="'+SC.BLANK_IMAGE_URL+'" class="disclosure button '+key+'" />';
292
- }
293
-
294
- context.push(html);
295
- },
296
-
297
- /**
298
- Adds a checkbox with the appropriate state to the content. This method
299
- will only be called if the list item view is supposed to have a
300
- checkbox.
301
-
302
- @param {SC.RenderContext} context the render context
303
- @param {Boolean} state YES, NO or SC.MIXED_STATE
304
- @returns {void}
305
- */
306
- renderCheckbox: function(context, state) {
307
-
308
- var key = (state === SC.MIXED_STATE) ? "mixed" : state ? "sel" : "nosel",
309
- cache = this._scli_checkboxHtml,
310
- isEnabled = this.get('contentIsEditable') && this.get('isEnabled'),
311
- html, tmp, classArray=[];
312
-
313
- if (!isEnabled) key = SC.keyFor('disabled', key);
314
- if (!cache) cache = this.constructor.prototype._scli_checkboxHtml = {};
315
- html = cache[key];
316
-
317
- if (!html) {
318
- tmp = SC.RenderContext('div').attr('role', 'button')
319
- .classNames(SC.clone(SC.CheckboxView.prototype.classNames));
320
-
321
- // set state on html
322
- if (state === SC.MIXED_STATE) classArray.push('mixed');
323
- else if(state) classArray.push('sel');
324
-
325
- // disabled
326
- if(!isEnabled) classArray.push('disabled');
327
-
328
- tmp.addClass(classArray);
329
-
330
- // now add inner content. note we do not add a real checkbox because
331
- // we don't want to have to setup a change observer on it.
332
- tmp.push('<span class="button"></span>');
333
-
334
- // apply edit
335
- html = cache[key] = tmp.join();
336
- }
337
-
338
- context.push(html);
339
- },
340
-
341
- /**
342
- Generates an icon for the label based on the content. This method will
343
- only be called if the list item view has icons enabled. You can override
344
- this method to display your own type of icon if desired.
345
-
346
- @param {SC.RenderContext} context the render context
347
- @param {String} icon a URL or class name.
348
- @returns {void}
349
- */
350
- renderIcon: function(context, icon){
351
- // get a class name and url to include if relevant
352
- var url = null, className = null , classArray=[];
353
- if (icon && SC.ImageView.valueIsUrl(icon)) {
354
- url = icon; className = '' ;
355
- } else {
356
- className = icon; url = SC.BLANK_IMAGE_URL ;
357
- }
358
-
359
- // generate the img element...
360
- classArray.push(className,'icon');
361
- context.begin('img')
362
- .addClass(classArray)
363
- .attr('src', url)
364
- .end();
365
- },
366
-
367
- /**
368
- Generates a label based on the content. You can override this method to
369
- render your own label if desired.
370
-
371
- @param {SC.RenderContext} context the render context
372
- @param {String} label the label to display, already HTML escaped.
373
- @returns {void}
374
- */
375
- renderLabel: function(context, label) {
376
- context.push('<label>', label || '', '</label>') ;
377
- },
378
196
 
379
197
  /**
380
198
  Finds and retrieves the element containing the label. This is used
@@ -387,46 +205,6 @@ SC.ListItemView = SC.View.extend(
387
205
  $label: function() {
388
206
  return this.$('label') ;
389
207
  },
390
-
391
- /**
392
- Generates a right icon for the label based on the content. This method
393
- will only be called if the list item view has icons enabled. You can
394
- override this method to display your own type of icon if desired.
395
-
396
- @param {SC.RenderContext} context the render context
397
- @param {String} icon a URL or class name.
398
- @returns {void}
399
- */
400
- renderRightIcon: function(context, icon){
401
- // get a class name and url to include if relevant
402
- var url = null, className = null, classArray=[];
403
- if (icon && SC.ImageView.valueIsUrl(icon)) {
404
- url = icon; className = '' ;
405
- } else {
406
- className = icon; url = SC.BLANK_IMAGE_URL ;
407
- }
408
-
409
- // generate the img element...
410
- classArray.push('right-icon',className);
411
- context.begin('img')
412
- .addClass(classArray)
413
- .attr('src', url)
414
- .end();
415
- },
416
-
417
- /**
418
- Generates an unread or other count for the list item. This method will
419
- only be called if the list item view has counts enabled. You can
420
- override this method to display your own type of counts if desired.
421
-
422
- @param {SC.RenderContext} context the render context
423
- @param {Number} count the count
424
- @returns {void}
425
- */
426
- renderCount: function(context, count) {
427
- context.push('<span class="count"><span class="inner">',
428
- count.toString(),'</span></span>') ;
429
- },
430
208
 
431
209
  /**
432
210
  Generates the html string used to represent the action item for your
@@ -440,23 +218,6 @@ SC.ListItemView = SC.View.extend(
440
218
  context.push('<img src="',SC.BLANK_IMAGE_URL,'" class="action" />');
441
219
  },
442
220
 
443
- /**
444
- Generates the string used to represent the branch arrow. override this to
445
- return your own custom HTML
446
-
447
- @param {SC.RenderContext} context the render context
448
- @param {Boolean} hasBranch YES if the item has a branch
449
- @returns {void}
450
- */
451
- renderBranch: function(context, hasBranch) {
452
- var classArray=[];
453
- classArray.push('branch',hasBranch ? 'branch-visible' : 'branch-hidden');
454
- context.begin('span')
455
- .addClass(classArray)
456
- .push('&nbsp;')
457
- .end();
458
- },
459
-
460
221
  /**
461
222
  Determines if the event occured inside an element with the specified
462
223
  classname or not.
@@ -491,7 +252,7 @@ SC.ListItemView = SC.View.extend(
491
252
  */
492
253
  _isInsideDisclosure: function(evt) {
493
254
  if (this.get('disclosureState')===SC.LEAF_NODE) return NO;
494
- return this._isInsideElementWithClassName('disclosure', evt);
255
+ return this._isInsideElementWithClassName('sc-disclosure-view', evt);
495
256
  },
496
257
 
497
258
  /** @private
@@ -601,22 +362,22 @@ SC.ListItemView = SC.View.extend(
601
362
  this._addCheckboxActiveState() ;
602
363
  this._isMouseInsideCheckbox = YES ;
603
364
  } else if (this._isMouseDownOnCheckbox) {
604
- this._removeCheckboxActiveState() ;
605
- this._isMouseInsideCheckbox = NO ;
365
+ this._removeCheckboxActiveState() ;
366
+ this._isMouseInsideCheckbox = NO ;
606
367
  } else if (this._isMouseDownOnDisclosure && this._isInsideDisclosure(evt)) {
607
368
  this._addDisclosureActiveState();
608
369
  this._isMouseInsideDisclosure = YES;
609
- } else if (this._isMouseDownOnDisclosure) {
610
- this._removeDisclosureActiveState();
611
- this._isMouseInsideDisclosure = NO ;
370
+ } else if (this._isMouseDownOnDisclosure) {
371
+ this._removeDisclosureActiveState();
372
+ this._isMouseInsideDisclosure = NO ;
612
373
  } else if (this._isMouseDownOnRightIcon && this._isInsideRightIcon(evt)) {
613
374
  this._addRightIconActiveState();
614
375
  this._isMouseInsideRightIcon = YES;
615
- } else if (this._isMouseDownOnRightIcon) {
616
- this._removeRightIconActiveState();
617
- this._isMouseInsideRightIcon = NO ;
618
- }
619
- return NO ;
376
+ } else if (this._isMouseDownOnRightIcon) {
377
+ this._removeRightIconActiveState();
378
+ this._isMouseInsideRightIcon = NO ;
379
+ }
380
+ return NO ;
620
381
  },
621
382
 
622
383
  touchStart: function(evt){
@@ -637,29 +398,66 @@ SC.ListItemView = SC.View.extend(
637
398
 
638
399
 
639
400
  _addCheckboxActiveState: function() {
640
- var enabled = this.get('isEnabled');
641
- this.$('.sc-checkbox-view').setClass('active', enabled);
401
+ if (this.get('isEnabled')) {
402
+ if (this._checkboxRenderDelegate) {
403
+ var source = this._checkboxRenderSource;
404
+
405
+ source.set('isActive', YES);
406
+
407
+ this._checkboxRenderDelegate.update(source, this.$('.sc-checkbox-view'));
408
+ } else {
409
+ // for backwards-compatibility.
410
+ this.$('.sc-checkbox-view').addClass('active');
411
+ }
412
+ }
642
413
  },
643
414
 
644
415
  _removeCheckboxActiveState: function() {
645
- this.$('.sc-checkbox-view').removeClass('active');
416
+ if (this._checkboxRenderer) {
417
+ var source = this._checkboxRenderSource;
418
+
419
+ source.set('isActive', NO);
420
+
421
+ this._checkboxRenderDelegate.update(source, this.$('.sc-checkbox-view'));
422
+ } else {
423
+ // for backwards-compatibility.
424
+ this.$('.sc-checkbox-view').removeClass('active');
425
+ }
646
426
  },
647
427
 
648
428
  _addDisclosureActiveState: function() {
649
- var enabled = this.get('isEnabled');
650
- this.$('img.disclosure').setClass('active', enabled);
429
+ if (this.get('isEnabled')) {
430
+ if (this._disclosureRenderDelegate) {
431
+ var source = this._disclosureRenderSource;
432
+ source.set('isActive', YES);
433
+
434
+ this._disclosureRenderDelegate.update(source, this.$('.sc-disclosure-view'));
435
+ } else {
436
+ // for backwards-compatibility.
437
+ this.$('.sc-disclosure-view').addClass('active');
438
+ }
439
+
440
+ }
651
441
  },
652
442
 
653
443
  _removeDisclosureActiveState: function() {
654
- this.$('img.disclosure').removeClass('active');
444
+ if (this._disclosureRenderer) {
445
+ var source = this._disclosureRenderSource;
446
+ source.set('isActive', NO);
447
+
448
+ this._disclosureRenderDelegate.update(source, this.$('.sc-disclosure-view'));
449
+ } else {
450
+ // for backwards-compatibility.
451
+ this.$('.sc-disclosure-view').addClass('active');
452
+ }
655
453
  },
656
454
 
657
455
  _addRightIconActiveState: function() {
658
- this.$('img.right-icon').setClass('active', YES);
456
+ this.$('img.right-icon').setClass('active', YES);
659
457
  },
660
458
 
661
459
  _removeRightIconActiveState: function() {
662
- this.$('img.right-icon').removeClass('active');
460
+ this.$('img.right-icon').removeClass('active');
663
461
  },
664
462
 
665
463
  /**
@@ -673,22 +471,22 @@ SC.ListItemView = SC.View.extend(
673
471
  @returns {Boolean} YES if the mouse was on the content element itself.
674
472
  */
675
473
  contentHitTest: function(evt) {
676
- // if not content value is returned, not much to do.
677
- var del = this.displayDelegate ;
678
- var labelKey = this.getDelegateProperty('contentValueKey', del) ;
679
- if (!labelKey) return NO ;
680
-
681
- // get the element to check for.
682
- var el = this.$label()[0] ;
683
- if (!el) return NO ; // no label to check for.
684
-
685
- var cur = evt.target, layer = this.get('layer') ;
686
- while(cur && (cur !== layer) && (cur !== window)) {
687
- if (cur === el) return YES ;
688
- cur = cur.parentNode ;
689
- }
690
-
691
- return NO;
474
+ // if not content value is returned, not much to do.
475
+ var del = this.displayDelegate ;
476
+ var labelKey = this.getDelegateProperty('contentValueKey', del) ;
477
+ if (!labelKey) return NO ;
478
+
479
+ // get the element to check for.
480
+ var el = this.$label()[0] ;
481
+ if (!el) return NO ; // no label to check for.
482
+
483
+ var cur = evt.target, layer = this.get('layer') ;
484
+ while(cur && (cur !== layer) && (cur !== window)) {
485
+ if (cur === el) return YES ;
486
+ cur = cur.parentNode ;
487
+ }
488
+
489
+ return NO;
692
490
  },
693
491
 
694
492
  beginEditing: function() {
@@ -724,10 +522,10 @@ SC.ListItemView = SC.View.extend(
724
522
  // nothing to do...
725
523
  if (!parent || !el || el.get('length')===0) return NO ;
726
524
  v = (labelKey && content && content.get) ? content.get(labelKey) : null ;
727
-
525
+
728
526
  f = this.computeFrameWithParentFrame(null);
729
527
  offset = SC.viewportOffset(el[0]);
730
-
528
+
731
529
  // if the label has a large line height, try to adjust it to something
732
530
  // more reasonable so that it looks right when we show the popup editor.
733
531
  oldLineHeight = el.css('lineHeight');
@@ -784,6 +582,14 @@ SC.ListItemView = SC.View.extend(
784
582
  return SC.InlineTextFieldView.discardEditing();
785
583
  },
786
584
 
585
+
586
+ /** @private
587
+ Allow editing.
588
+ */
589
+ inlineEditorShouldBeginEditing: function(inlineEditor) {
590
+ return YES ;
591
+ },
592
+
787
593
  /** @private
788
594
  Set editing to true so edits will no longer be allowed.
789
595
  */
@@ -799,20 +605,6 @@ SC.ListItemView = SC.View.extend(
799
605
  this._oldOpacity = el.css('opacity');
800
606
  el.css('opacity', 0.0) ;
801
607
  },
802
-
803
- /** @private
804
- Could check with a validator someday...
805
- */
806
- inlineEditorShouldBeginEditing: function(inlineEditor) {
807
- return YES ;
808
- },
809
-
810
- /** @private
811
- Could check with a validator someday...
812
- */
813
- inlineEditorShouldBeginEditing: function(inlineEditor, finalValue) {
814
- return YES ;
815
- },
816
608
 
817
609
  inlineEditorShouldEndEditing: function(inlineEditor, finalValue) {
818
610
  return YES ;
@@ -830,7 +622,294 @@ SC.ListItemView = SC.View.extend(
830
622
  if (labelKey && content && content.set) {
831
623
  content.set(labelKey, finalValue) ;
832
624
  }
625
+
626
+ this.$label().css("opacity", this._oldOpacity);
627
+
833
628
  this.displayDidChange();
629
+ },
630
+
631
+ /** @private
632
+ Fills the passed html-array with strings that can be joined to form the
633
+ innerHTML of the receiver element. Also populates an array of classNames
634
+ to set on the outer element.
635
+
636
+ @param {SC.RenderContext} context
637
+ @param {Boolean} firstTime
638
+ @returns {void}
639
+ */
640
+ render: function(context, firstTime) {
641
+ var content = this.get('content'),
642
+ del = this.displayDelegate,
643
+ level = this.get('outlineLevel'),
644
+ indent = this.get('outlineIndent'),
645
+ key, value, working, classArray = [];
646
+
647
+ // add alternating row classes
648
+ classArray.push((this.get('contentIndex')%2 === 0) ? 'even' : 'odd');
649
+ context.setClass('disabled', !this.get('isEnabled'));
650
+
651
+ // outline level wrapper
652
+ working = context.begin("div").addClass("sc-outline");
653
+ if (level>=0 && indent>0) working.addStyle("left", indent*(level+1));
654
+
655
+ // handle disclosure triangle
656
+ value = this.get('disclosureState');
657
+ if (value !== SC.LEAF_NODE) {
658
+ this.renderDisclosure(working, value);
659
+ classArray.push('has-disclosure');
660
+ }
661
+
662
+
663
+ // handle checkbox
664
+ key = this.getDelegateProperty('contentCheckboxKey', del) ;
665
+ if (key) {
666
+ value = content ? (content.get ? content.get(key) : content[key]) : NO ;
667
+ if (value !== null) {
668
+ this.renderCheckbox(working, value);
669
+ classArray.push('has-checkbox');
670
+ }
671
+ }
672
+
673
+ // handle icon
674
+ if (this.getDelegateProperty('hasContentIcon', del)) {
675
+ key = this.getDelegateProperty('contentIconKey', del) ;
676
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
677
+
678
+ this.renderIcon(working, value);
679
+ classArray.push('has-icon');
680
+ } else if (this.get('icon')) {
681
+ value = this.get('icon');
682
+ this.renderIcon(working, value);
683
+ classArray.push('has-icon');
684
+ }
685
+
686
+ // handle label -- always invoke
687
+ key = this.getDelegateProperty('contentValueKey', del) ;
688
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : content ;
689
+ if (value && SC.typeOf(value) !== SC.T_STRING) value = value.toString();
690
+ if (this.get('escapeHTML')) value = SC.RenderContext.escapeHTML(value);
691
+ this.renderLabel(working, value);
692
+
693
+ // handle right icon
694
+ if (this.getDelegateProperty('hasContentRightIcon', del)) {
695
+ key = this.getDelegateProperty('contentRightIconKey', del) ;
696
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
697
+
698
+ this.renderRightIcon(working, value);
699
+ classArray.push('has-right-icon');
700
+ }
701
+
702
+ // handle unread count
703
+ key = this.getDelegateProperty('contentUnreadCountKey', del) ;
704
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
705
+ if (!SC.none(value) && (value !== 0)) {
706
+ this.renderCount(working, value) ;
707
+ var digits = ['zero', 'one', 'two', 'three', 'four', 'five'];
708
+ var valueLength = value.toString().length;
709
+ var digitsLength = digits.length;
710
+ var digit = (valueLength < digitsLength) ? digits[valueLength] : digits[digitsLength-1];
711
+ classArray.push('has-count '+digit+'-digit');
712
+ }
713
+
714
+ // handle action
715
+ key = this.getDelegateProperty('listItemActionProperty', del) ;
716
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
717
+ if (value) {
718
+ this.renderAction(working, value);
719
+ classArray.push('has-action');
720
+ }
721
+
722
+ // handle branch
723
+ if (this.getDelegateProperty('hasContentBranch', del)) {
724
+ key = this.getDelegateProperty('contentIsBranchKey', del);
725
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : NO ;
726
+ this.renderBranch(working, value);
727
+ classArray.push('has-branch');
728
+ }
729
+ context.addClass(classArray);
730
+ context = working.end();
731
+ },
732
+
733
+ /** @private
734
+ Adds a disclosure triangle with the appropriate display to the content.
735
+ This method will only be called if the disclosure state of the view is
736
+ something other than SC.LEAF_NODE.
737
+
738
+ @param {SC.RenderContext} context the render context
739
+ @param {Boolean} state YES, NO or SC.MIXED_STATE
740
+ @returns {void}
741
+ */
742
+ renderDisclosure: function(context, state) {
743
+ var renderer = this.get('theme').disclosureRenderDelegate;
744
+
745
+ context = context.begin('div')
746
+ .addClass('sc-disclosure-view')
747
+ .addClass('sc-regular-size')
748
+ .addClass(this.get('theme').classNames)
749
+ .addClass(renderer.get('name'));
750
+
751
+ var source = this._disclosureRenderSource;
752
+ if (!source) {
753
+ this._disclosureRenderSource = source =
754
+ SC.Object.create({ renderState: {}, theme: this.get('theme') });
755
+ }
756
+
757
+ source
758
+ .set('isSelected', state === SC.BRANCH_OPEN)
759
+ .set('isEnabled', this.get('isEnabled'))
760
+ .set('title', '');
761
+
762
+ renderer.render(source, context);
763
+
764
+ context = context.end();
765
+ this._disclosureRenderDelegate = renderer;
766
+ },
767
+
768
+ /** @private
769
+ Adds a checkbox with the appropriate state to the content. This method
770
+ will only be called if the list item view is supposed to have a
771
+ checkbox.
772
+
773
+ @param {SC.RenderContext} context the render context
774
+ @param {Boolean} state YES, NO or SC.MIXED_STATE
775
+ @returns {void}
776
+ */
777
+ renderCheckbox: function(context, state) {
778
+ var renderer = this.get('theme').checkboxRenderDelegate;
779
+
780
+ // note: checkbox-view is really not the best thing to do here; we should do
781
+ // sc-list-item-checkbox; however, themes expect something different, unfortunately.
782
+ context = context.begin('div')
783
+ .addClass('sc-checkbox-view')
784
+ .addClass('sc-regular-size')
785
+ .addClass(this.get('theme').classNames)
786
+ .addClass(renderer.get('name'));
787
+
788
+ var source = this._checkboxRenderSource;
789
+ if (!source) {
790
+ source = this._checkboxRenderSource =
791
+ SC.Object.create({ renderState: {}, theme: this.get('theme') });
792
+ }
793
+
794
+ source
795
+ .set('isSelected', state && (state !== SC.MIXED_STATE))
796
+ .set('isEnabled', this.get('isEnabled') && this.get('contentIsEditable'))
797
+ .set('isActive', this._checkboxIsActive)
798
+ .set('title', '');
799
+
800
+ renderer.render(source, context);
801
+ context = context.end();
802
+
803
+ this._checkboxRenderDelegate = renderer;
804
+ },
805
+
806
+ /** @private
807
+ Generates an icon for the label based on the content. This method will
808
+ only be called if the list item view has icons enabled. You can override
809
+ this method to display your own type of icon if desired.
810
+
811
+ @param {SC.RenderContext} context the render context
812
+ @param {String} icon a URL or class name.
813
+ @returns {void}
814
+ */
815
+ renderIcon: function(context, icon) {
816
+ // get a class name and url to include if relevant
817
+ var url = null, className = null , classArray=[];
818
+ if (icon && SC.ImageView.valueIsUrl(icon)) {
819
+ url = icon; className = '' ;
820
+ } else {
821
+ className = icon; url = SC.BLANK_IMAGE_URL ;
822
+ }
823
+
824
+ // generate the img element...
825
+ classArray.push(className,'icon');
826
+ context.begin('img')
827
+ .addClass(classArray)
828
+ .attr('src', url)
829
+ .end();
830
+ },
831
+
832
+ /** @private
833
+ Generates a label based on the content. You can override this method to
834
+ display your own type of icon if desired.
835
+
836
+ @param {SC.RenderContext} context the render context
837
+ @param {String} label the label to display, already HTML escaped.
838
+ @returns {void}
839
+ */
840
+ renderLabel: function(context, label) {
841
+ context.push('<label>', label || '', '</label>') ;
842
+ },
843
+
844
+ /** @private
845
+ Generates a right icon for the label based on the content. This method will
846
+ only be called if the list item view has icons enabled. You can override
847
+ this method to display your own type of icon if desired.
848
+
849
+ @param {SC.RenderContext} context the render context
850
+ @param {String} icon a URL or class name.
851
+ @returns {void}
852
+ */
853
+ renderRightIcon: function(context, icon) {
854
+ // get a class name and url to include if relevant
855
+ var url = null, className = null, classArray=[];
856
+ if (icon && SC.ImageView.valueIsUrl(icon)) {
857
+ url = icon; className = '' ;
858
+ } else {
859
+ className = icon; url = SC.BLANK_IMAGE_URL ;
860
+ }
861
+
862
+ // generate the img element...
863
+ classArray.push('right-icon',className);
864
+ context.begin('img')
865
+ .addClass(classArray)
866
+ .attr('src', url)
867
+ .end();
868
+ },
869
+
870
+ /** @private
871
+ Generates an unread or other count for the list item. This method will
872
+ only be called if the list item view has counts enabled. You can
873
+ override this method to display your own type of counts if desired.
874
+
875
+ @param {SC.RenderContext} context the render context
876
+ @param {Number} count the count
877
+ @returns {void}
878
+ */
879
+ renderCount: function(context, count) {
880
+ context.push('<span class="count"><span class="inner">',
881
+ count.toString(),'</span></span>') ;
882
+ },
883
+
884
+ /** @private
885
+ Generates the html string used to represent the action item for your
886
+ list item. override this to return your own custom HTML
887
+
888
+ @param {SC.RenderContext} context the render context
889
+ @param {String} actionClassName the name of the action item
890
+ @returns {void}
891
+ */
892
+ renderAction: function(context, actionClassName) {
893
+ context.push('<img src="',SC.BLANK_IMAGE_URL,'" class="action" />');
894
+ },
895
+
896
+ /** @private
897
+ Generates the string used to represent the branch arrow. override this to
898
+ return your own custom HTML
899
+
900
+ @param {SC.RenderContext} context the render context
901
+ @param {Boolean} hasBranch YES if the item has a branch
902
+ @returns {void}
903
+ */
904
+ renderBranch: function(context, hasBranch) {
905
+ var classArray=[];
906
+ classArray.push('branch',hasBranch ? 'branch-visible' : 'branch-hidden');
907
+ context.begin('span')
908
+ .addClass(classArray)
909
+ .push('&nbsp;')
910
+ .end();
834
911
  }
835
912
 
836
913
  });
914
+
915
+ SC.ListItemView._deprecatedRenderWarningHasBeenIssued = false;