sproutcore 1.9.2 → 1.10.0.rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (746) hide show
  1. checksums.yaml +15 -0
  2. data/VERSION.yml +2 -2
  3. data/bin/sc-build +12 -9
  4. data/bin/sc-build-number +12 -9
  5. data/bin/sc-docs +12 -15
  6. data/bin/sc-gen +12 -9
  7. data/bin/sc-init +12 -9
  8. data/bin/sc-manifest +12 -9
  9. data/bin/sc-server +12 -9
  10. data/bin/sproutcore +12 -9
  11. data/lib/frameworks/sproutcore/Buildfile +14 -17
  12. data/lib/frameworks/sproutcore/CHANGELOG.md +214 -3
  13. data/lib/frameworks/sproutcore/README.md +4 -1
  14. data/lib/frameworks/sproutcore/apps/greenhouse/Buildfile +13 -0
  15. data/lib/frameworks/sproutcore/{frameworks/experimental/apps/greenhouse/README → apps/greenhouse/README.md} +1 -1
  16. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/TODO +0 -0
  17. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/beautify.js +0 -0
  18. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/design.js +3 -3
  19. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/file.js +3 -3
  20. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/files.js +3 -3
  21. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/layout.js +9 -9
  22. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/library.js +23 -23
  23. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/page.js +1 -1
  24. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/property.js +1 -1
  25. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/property_editor.js +2 -2
  26. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/target.js +1 -1
  27. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/targets.js +12 -12
  28. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/view_configs.js +15 -15
  29. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/core.js +14 -14
  30. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/core_file.js +0 -0
  31. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/data_source.js +42 -42
  32. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/app_page.js +45 -45
  33. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/app-selector.css +0 -0
  34. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/button.css +0 -0
  35. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/dock.css +0 -0
  36. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/general.css +0 -0
  37. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/icons.css +5 -0
  38. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/main-page.css +0 -0
  39. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/menu.css +0 -0
  40. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/modal.css +0 -0
  41. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/picker.css +0 -0
  42. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/search.css +0 -0
  43. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/text-field.css +0 -0
  44. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/dialogs.js +0 -0
  45. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.eot +0 -0
  46. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.otf +0 -0
  47. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.woff +0 -0
  48. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.eot +0 -0
  49. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.otf +0 -0
  50. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.woff +0 -0
  51. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/app-selector/choose-app.png +0 -0
  52. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/app-selector/list-item-sel.png +0 -0
  53. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-l.png +0 -0
  54. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-m.png +0 -0
  55. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-r.png +0 -0
  56. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-l.png +0 -0
  57. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-m.png +0 -0
  58. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-r.png +0 -0
  59. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/active-l.png +0 -0
  60. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/active-r.png +0 -0
  61. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-l.png +0 -0
  62. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-r.png +0 -0
  63. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/regular-l.png +0 -0
  64. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/regular-r.png +0 -0
  65. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-l.png +0 -0
  66. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-r.png +0 -0
  67. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-l.png +0 -0
  68. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-r.png +0 -0
  69. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-l.png +0 -0
  70. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-r.png +0 -0
  71. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-l.png +0 -0
  72. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-m.png +0 -0
  73. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-r.png +0 -0
  74. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-l.png +0 -0
  75. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-r.png +0 -0
  76. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-l.png +0 -0
  77. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-r.png +0 -0
  78. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-l.png +0 -0
  79. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-r.png +0 -0
  80. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-l.png +0 -0
  81. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-r.png +0 -0
  82. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-l.png +0 -0
  83. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-m.png +0 -0
  84. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-r.png +0 -0
  85. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-l.png +0 -0
  86. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-m.png +0 -0
  87. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-r.png +0 -0
  88. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-l.png +0 -0
  89. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-m.png +0 -0
  90. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-r.png +0 -0
  91. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-l.png +0 -0
  92. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-m.png +0 -0
  93. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-r.png +0 -0
  94. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-l.png +0 -0
  95. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-m.png +0 -0
  96. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-r.png +0 -0
  97. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/active-m.png +0 -0
  98. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/disabled-m.png +0 -0
  99. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/regular-m.png +0 -0
  100. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-active-m.png +0 -0
  101. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-disabled-m.png +0 -0
  102. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-m.png +0 -0
  103. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/active-l.png +0 -0
  104. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/active-r.png +0 -0
  105. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/disabled-l.png +0 -0
  106. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/disabled-r.png +0 -0
  107. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/regular-l.png +0 -0
  108. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/regular-r.png +0 -0
  109. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-active-l.png +0 -0
  110. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-active-r.png +0 -0
  111. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-l.png +0 -0
  112. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-r.png +0 -0
  113. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-l.png +0 -0
  114. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-r.png +0 -0
  115. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/actions-active.png +0 -0
  116. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/actions.png +0 -0
  117. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/inspector-active.png +0 -0
  118. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/inspector.png +0 -0
  119. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/library-active.png +0 -0
  120. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/library.png +0 -0
  121. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/projects-active.png +0 -0
  122. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/projects.png +0 -0
  123. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/run-active.png +0 -0
  124. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/run.png +0 -0
  125. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/save-active.png +0 -0
  126. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/save.png +0 -0
  127. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/greenhouse-l.png +0 -0
  128. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/greenhouse-s.png +0 -0
  129. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/sproutcore.png +0 -0
  130. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/main-bg.png +0 -0
  131. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom-left.png +0 -0
  132. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom-right.png +0 -0
  133. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom.png +0 -0
  134. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/close-active.png +0 -0
  135. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/close.png +0 -0
  136. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/left.png +0 -0
  137. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-bottom.png +0 -0
  138. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-left.png +0 -0
  139. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-right.png +0 -0
  140. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-top.png +0 -0
  141. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/right.png +0 -0
  142. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/search-active.png +0 -0
  143. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/search.png +0 -0
  144. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top-left.png +0 -0
  145. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top-right.png +0 -0
  146. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top.png +0 -0
  147. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/images/sc-icon-sproutcore-16.png +0 -0
  148. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/toolbar-bg.png +0 -0
  149. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/inspectors.js +0 -0
  150. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/loading.rhtml +0 -0
  151. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/main_page.js +0 -0
  152. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/strings.js +0 -0
  153. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/fixtures/file.js +0 -0
  154. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/main.js +5 -5
  155. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/mixins/drop_down.js +14 -14
  156. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/design.js +4 -4
  157. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/dir.js +12 -12
  158. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/file.js +7 -9
  159. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/target.js +12 -12
  160. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/view_config.js +10 -10
  161. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/resources/test_page.js +0 -0
  162. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/inspector.js +11 -11
  163. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/library.js +10 -10
  164. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/main.js +26 -25
  165. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/modals.js +10 -10
  166. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/ready.js +15 -15
  167. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/design.js +0 -0
  168. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/designs.js +0 -0
  169. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/file.js +0 -0
  170. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/files.js +0 -0
  171. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/models/file.js +0 -0
  172. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/models/view_config.js +0 -0
  173. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/views/list_item.js +0 -0
  174. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/views/plist_item.js +1 -5
  175. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/theme.js +6 -6
  176. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/anchor.js +43 -43
  177. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/application_list_item.js +2 -2
  178. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/event_blocker.js +7 -7
  179. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/label_designer.js +0 -0
  180. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/list_item.js +8 -8
  181. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/plist_item.js +23 -23
  182. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/simple_button.js +31 -31
  183. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/tear_off_picker.js +12 -12
  184. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/web.js +5 -5
  185. data/lib/frameworks/sproutcore/apps/media_examples/core.js +5 -6
  186. data/lib/frameworks/sproutcore/apps/media_examples/views/audio_view.js +16 -17
  187. data/lib/frameworks/sproutcore/apps/media_examples/views/camera_view.js +4 -5
  188. data/lib/frameworks/sproutcore/apps/media_examples/views/capabilities_view.js +17 -18
  189. data/lib/frameworks/sproutcore/apps/media_examples/views/microphone_view.js +4 -5
  190. data/lib/frameworks/sproutcore/apps/media_examples/views/video_view.js +18 -19
  191. data/lib/frameworks/sproutcore/apps/showcase/Buildfile +2 -2
  192. data/lib/frameworks/sproutcore/apps/showcase/README +1 -1
  193. data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +27 -7
  194. data/lib/frameworks/sproutcore/apps/showcase/core.js +6 -4
  195. data/lib/frameworks/sproutcore/apps/showcase/main.js +2 -1
  196. data/lib/frameworks/sproutcore/apps/showcase/patch.diff +529 -0
  197. data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-128.png +0 -0
  198. data/lib/frameworks/sproutcore/apps/showcase/resources/main_page.js +3 -2
  199. data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +35 -16
  200. data/lib/frameworks/sproutcore/apps/showcase/resources/views_page.js +195 -10
  201. data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +2 -1
  202. data/lib/frameworks/sproutcore/apps/showcase/theme.js +2 -1
  203. data/lib/frameworks/sproutcore/apps/showcase/views/checkbox_views.js +2 -1
  204. data/lib/frameworks/sproutcore/apps/showcase/views/date_field_views.js +2 -1
  205. data/lib/frameworks/sproutcore/apps/showcase/views/disclosure_views.js +2 -1
  206. data/lib/frameworks/sproutcore/apps/showcase/views/label_views.js +2 -1
  207. data/lib/frameworks/sproutcore/apps/showcase/views/list_views.js +2 -1
  208. data/lib/frameworks/sproutcore/apps/showcase/views/popup_button_views.js +3 -2
  209. data/lib/frameworks/sproutcore/apps/showcase/views/progress_views.js +2 -1
  210. data/lib/frameworks/sproutcore/apps/showcase/views/radio_views.js +2 -1
  211. data/lib/frameworks/sproutcore/apps/showcase/views/scroll_views.js +2 -1
  212. data/lib/frameworks/sproutcore/apps/showcase/views/segmented_views.js +2 -1
  213. data/lib/frameworks/sproutcore/apps/showcase/views/select_views.js +10 -9
  214. data/lib/frameworks/sproutcore/apps/showcase/views/slider_views.js +2 -1
  215. data/lib/frameworks/sproutcore/apps/showcase/views/source_list_views.js +2 -1
  216. data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +2 -1
  217. data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +2 -1
  218. data/lib/frameworks/sproutcore/apps/showcase/views/static_content_views.js +2 -1
  219. data/lib/frameworks/sproutcore/apps/showcase/views/tab_views.js +2 -1
  220. data/lib/frameworks/sproutcore/apps/showcase/views/text_field_views.js +2 -1
  221. data/lib/frameworks/sproutcore/apps/showcase/views/toolbar_views.js +2 -1
  222. data/lib/frameworks/sproutcore/apps/showcase/views/views_item_view.js +15 -6
  223. data/lib/frameworks/sproutcore/apps/showcase/views/views_list_view.js +5 -4
  224. data/lib/frameworks/sproutcore/apps/showcase/views/web_views.js +2 -1
  225. data/lib/frameworks/sproutcore/apps/showcase/views/well_views.js +2 -1
  226. data/lib/frameworks/sproutcore/apps/showcase/views/workspace_views.js +2 -1
  227. data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +5 -5
  228. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +15 -15
  229. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/styles.css +3 -0
  230. data/lib/frameworks/sproutcore/apps/tests/controllers/source.js +11 -11
  231. data/lib/frameworks/sproutcore/apps/tests/controllers/target.js +6 -12
  232. data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +28 -33
  233. data/lib/frameworks/sproutcore/apps/tests/controllers/{detail.js → test.js} +14 -12
  234. data/lib/frameworks/sproutcore/apps/tests/controllers/tests.js +11 -15
  235. data/lib/frameworks/sproutcore/apps/tests/core.js +8 -113
  236. data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +9 -19
  237. data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +81 -92
  238. data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +3 -1
  239. data/lib/frameworks/sproutcore/apps/tests/main.js +8 -13
  240. data/lib/frameworks/sproutcore/apps/tests/statechart.js +268 -0
  241. data/lib/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +4 -4
  242. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +16 -16
  243. data/lib/frameworks/sproutcore/apps/welcome/core.js +9 -9
  244. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/images/sproutcore.png +0 -0
  245. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +22 -25
  246. data/lib/frameworks/sproutcore/apps/welcome/main.js +3 -3
  247. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-landscape.jpg b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-landscape.jpg +0 -0
  248. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-landscape.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-landscape.png +0 -0
  249. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-portrait.jpg b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-portrait.jpg +0 -0
  250. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-portrait.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-portrait.png +0 -0
  251. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup.png +0 -0
  252. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +21 -7
  253. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +35 -2
  254. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +142 -75
  255. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +20 -2
  256. data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/horizontal_stack_layout.js +283 -0
  257. data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/vertical_stack_layout.js +284 -0
  258. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +64 -65
  259. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +14 -14
  260. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +8 -8
  261. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +19 -19
  262. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +10 -25
  263. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +12 -6
  264. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +53 -34
  265. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +30 -24
  266. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +44 -40
  267. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +5 -2
  268. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +105 -176
  269. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane_statechart.js +50 -0
  270. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +4 -4
  271. data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/view_transition_protocol.js +48 -0
  272. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +225 -7
  273. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +54 -34
  274. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +86 -71
  275. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +35 -35
  276. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +2 -2
  277. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +2 -2
  278. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +283 -120
  279. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +36 -37
  280. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +653 -435
  281. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +49 -42
  282. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +422 -396
  283. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +5 -5
  284. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +10 -8
  285. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +37 -16
  286. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +5 -5
  287. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +1 -1
  288. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +15 -0
  289. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +21 -0
  290. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/cursor.js +28 -0
  291. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/platform.js +18 -0
  292. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +17 -17
  293. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_attr.js +9 -9
  294. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +43 -43
  295. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +4 -14
  296. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +18 -30
  297. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +78 -43
  298. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/theme.js +7 -7
  299. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +4 -3
  300. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +31 -15
  301. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +47 -2
  302. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/firstResponder.js +32 -31
  303. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/keyPane.js +23 -22
  304. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +3 -2
  305. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +17 -16
  306. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +626 -211
  307. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/border_frame_test.js +174 -0
  308. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build.js +22 -20
  309. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/childViewLayout_test.js +27 -0
  310. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -10
  311. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +5 -4
  312. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +10 -6
  313. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createLayer.js +17 -12
  314. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroy.js +60 -7
  315. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroyLayer.js +19 -26
  316. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +14 -13
  317. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/enabled_states_test.js +341 -0
  318. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/findLayerInParentLayer.js +9 -8
  319. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/init.js +26 -16
  320. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +28 -68
  321. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisible.js +35 -23
  322. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisibleInWindow.js +93 -78
  323. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +62 -64
  324. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +69 -18
  325. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +26 -21
  326. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +129 -57
  327. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +436 -238
  328. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/removeChild.js +38 -44
  329. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +14 -4
  330. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render_delegate_support.js +29 -20
  331. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/replaceAllChildren_test.js +229 -0
  332. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayer.js +33 -95
  333. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +87 -39
  334. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view_states_test.js +684 -0
  335. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +767 -625
  336. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +4 -23
  337. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +645 -77
  338. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +1 -1
  339. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +218 -19
  340. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +648 -321
  341. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +326 -534
  342. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +120 -126
  343. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/statechart.js +1526 -0
  344. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +18 -23
  345. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +12 -94
  346. data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +2 -2
  347. data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +19 -19
  348. data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +43 -27
  349. data/lib/frameworks/sproutcore/frameworks/core_tools/models/test.js +5 -5
  350. data/lib/frameworks/sproutcore/frameworks/core_tools/resources/icons.css +5 -0
  351. data/lib/frameworks/sproutcore/frameworks/core_tools/resources/sc-icon-sproutcore-16.png +0 -0
  352. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +41 -41
  353. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +1 -1
  354. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +90 -90
  355. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +1 -1
  356. data/lib/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +31 -31
  357. data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +3 -3
  358. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +6 -6
  359. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +1 -1
  360. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +1 -1
  361. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
  362. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -8
  363. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +74 -48
  364. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +11 -16
  365. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +187 -253
  366. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/cascade.js +5 -5
  367. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +14 -14
  368. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +49 -9
  369. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +2 -2
  370. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +236 -127
  371. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/instance_management.js +107 -0
  372. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +17 -0
  373. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +12 -11
  374. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecord.js +42 -17
  375. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +20 -15
  376. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +205 -92
  377. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +61 -25
  378. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +39 -9
  379. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +45 -1
  380. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/tests/system/datetime.js +88 -0
  381. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/coders/design.js +0 -0
  382. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/coders/object.js +0 -0
  383. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/controllers.js +3 -3
  384. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/design.js +2 -2
  385. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/designs.js +19 -19
  386. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/page_design.js +44 -44
  387. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/page_files.js +4 -4
  388. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/core.js +0 -0
  389. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_rule.js +0 -0
  390. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_style.js +6 -6
  391. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_style_sheet.js +37 -37
  392. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/button.js +0 -0
  393. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/label.js +0 -0
  394. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/object_designer.js +0 -0
  395. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/tab.js +0 -0
  396. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/text_field.js +0 -0
  397. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/view_designer.js +1 -1
  398. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/css/designer.css +0 -0
  399. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/design_page.js +0 -0
  400. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/high_light.css +0 -0
  401. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/controller.png +0 -0
  402. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-bg.png +0 -0
  403. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-bg.png +0 -0
  404. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-divider.png +0 -0
  405. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-sel-bg.png +0 -0
  406. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-sel-divider.png +0 -0
  407. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/main-bg.png +0 -0
  408. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/page.png +0 -0
  409. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/pane.png +0 -0
  410. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/view.png +0 -0
  411. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/selection_handles.css +0 -0
  412. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/binding.js +0 -0
  413. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/object.js +0 -0
  414. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/page.js +0 -0
  415. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/view.js +0 -0
  416. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/mixins/button.js +0 -0
  417. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/mixins/snap_lines.js +0 -0
  418. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/tests/coders/page.js +0 -0
  419. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/tests/designers/view_designer.js +0 -0
  420. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/designer_drop_target.js +36 -37
  421. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/drawing.js +1 -1
  422. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/high_light.js +17 -17
  423. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/page_item_view.js +0 -0
  424. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/selection_handles.js +14 -14
  425. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +1 -2
  426. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +51 -51
  427. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/mixins/split_child.js +63 -52
  428. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/mixins/split_thumb.js +64 -59
  429. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +113 -112
  430. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +182 -203
  431. data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +13 -13
  432. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +51 -29
  433. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +513 -307
  434. data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +69 -217
  435. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +31 -26
  436. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +15 -20
  437. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +2 -6
  438. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +6 -6
  439. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +25 -16
  440. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +6 -6
  441. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +29 -16
  442. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +1 -1
  443. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +19 -23
  444. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +14 -17
  445. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +24 -24
  446. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -4
  447. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +5 -5
  448. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/render_delegates/split.js +0 -0
  449. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/render_delegates/split_divider.js +0 -0
  450. data/lib/frameworks/sproutcore/frameworks/desktop/resources/modal.css +2 -0
  451. data/lib/frameworks/sproutcore/frameworks/desktop/resources/panel.css +1 -1
  452. data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +24 -98
  453. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +446 -442
  454. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +42 -21
  455. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +19 -3
  456. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +26 -28
  457. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +3 -2
  458. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/pane_page.js +11 -7
  459. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +5 -4
  460. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +32 -26
  461. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +27 -22
  462. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/methods.js +5 -4
  463. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/ui.js +0 -2
  464. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +11 -8
  465. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/displayProperties.js +5 -5
  466. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/keyEquivalents.js +9 -11
  467. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +23 -23
  468. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +15 -17
  469. data/lib/frameworks/sproutcore/frameworks/desktop/tests/{mixins → views/collection}/collection_fast_path.js +18 -12
  470. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +46 -53
  471. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +101 -47
  472. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +26 -26
  473. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +89 -69
  474. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selection.js +27 -25
  475. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +32 -35
  476. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +1 -0
  477. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +6 -11
  478. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +3 -5
  479. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +103 -8
  480. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +76 -38
  481. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +3 -5
  482. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +91 -3
  483. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/render.js +2 -17
  484. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +70 -38
  485. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js +17 -19
  486. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +10 -13
  487. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +37 -30
  488. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +18 -20
  489. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +115 -28
  490. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +0 -2
  491. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +37 -1
  492. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +194 -182
  493. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +2 -3
  494. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +18 -21
  495. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +5 -6
  496. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +5 -4
  497. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/children.js +15 -15
  498. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/dividers.js +0 -0
  499. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +341 -45
  500. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/split_child.js +0 -0
  501. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/split_thumb.js +0 -0
  502. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +6 -8
  503. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +49 -52
  504. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +23 -6
  505. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +2 -4
  506. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +4 -5
  507. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +47 -38
  508. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +24 -24
  509. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +887 -740
  510. data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +2 -2
  511. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +68 -55
  512. data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +3 -3
  513. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +8 -26
  514. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +189 -167
  515. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +55 -54
  516. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +8 -4
  517. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +145 -146
  518. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +21 -21
  519. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +2 -2
  520. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +66 -66
  521. data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +40 -44
  522. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +203 -200
  523. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +11 -12
  524. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +6 -13
  525. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +87 -112
  526. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +192 -179
  527. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +23 -23
  528. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +64 -64
  529. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +56 -56
  530. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +784 -714
  531. data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +21 -39
  532. data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +45 -41
  533. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
  534. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +4 -10
  535. data/lib/frameworks/sproutcore/frameworks/desktop/views/thumb.js +9 -47
  536. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +40 -16
  537. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -1
  538. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +62 -50
  539. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +0 -9
  540. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +45 -45
  541. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +16 -16
  542. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +46 -6
  543. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +16 -2
  544. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/desktop_scroller.js +12 -12
  545. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/ui.js +38 -40
  546. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +8 -8
  547. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +20 -20
  548. data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +16 -16
  549. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +26 -14
  550. data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +43 -43
  551. data/lib/frameworks/sproutcore/frameworks/foundation/debug/test-image.png +0 -0
  552. data/lib/frameworks/sproutcore/frameworks/foundation/delegates/inline_text_field.js +11 -11
  553. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +63 -41
  554. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +1 -1
  555. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +60 -61
  556. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +72 -72
  557. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +142 -142
  558. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gesturable.js +1 -1
  559. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
  560. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +10 -8
  561. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +36 -29
  562. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +4 -4
  563. data/lib/frameworks/sproutcore/frameworks/foundation/protocols/swap_transition_protocol.js +150 -0
  564. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +54 -29
  565. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +23 -18
  566. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +12 -11
  567. data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +21 -20
  568. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-128.png +0 -0
  569. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-256.png +0 -0
  570. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-32.png +0 -0
  571. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-48.png +0 -0
  572. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-512.png +0 -0
  573. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-64.png +0 -0
  574. data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +5 -0
  575. data/lib/frameworks/sproutcore/frameworks/foundation/system/app_cache.js +412 -0
  576. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -3
  577. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +11 -5
  578. data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +21 -21
  579. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +8 -3
  580. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +33 -8
  581. data/lib/frameworks/sproutcore/frameworks/foundation/tests/delegates/inline_text_field/inline_text_field.js +2 -1
  582. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_display.js +9 -3
  583. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +5 -4
  584. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +49 -4
  585. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +29 -21
  586. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +3 -5
  587. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/validatable/ui.js +8 -10
  588. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/app_cache_test.js +81 -0
  589. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/image_queue.js +2 -2
  590. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +0 -3
  591. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +40 -1
  592. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/transition_test.js +143 -0
  593. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +5 -7
  594. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +187 -84
  595. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +6 -41
  596. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +51 -7
  597. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +11 -16
  598. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_bounce_transition.js +80 -0
  599. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_smooth_transition.js +39 -0
  600. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_spring_transition.js +77 -0
  601. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/bounce_transition.js +211 -0
  602. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/fade_transition.js +57 -0
  603. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/pop_transition.js +82 -0
  604. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/scale_transition.js +54 -0
  605. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/slide_transition.js +140 -0
  606. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/spring_transition.js +203 -0
  607. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_dissolve_transition.js +67 -0
  608. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_fade_color_transition.js +81 -0
  609. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_move_in_transition.js +104 -0
  610. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_push_transition.js +181 -0
  611. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_reveal_transition.js +90 -0
  612. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +2 -2
  613. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +483 -95
  614. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +65 -65
  615. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +111 -100
  616. data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +30 -222
  617. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +38 -24
  618. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +74 -62
  619. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-1.8.3-patched.js +9485 -0
  620. data/lib/frameworks/sproutcore/frameworks/media/media_capabilities.js +4 -4
  621. data/lib/frameworks/sproutcore/frameworks/media/render_delegates/media_slider.js +20 -20
  622. data/lib/frameworks/sproutcore/frameworks/media/resources/video.css +18 -17
  623. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +19 -19
  624. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +10 -11
  625. data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +7 -8
  626. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +24 -24
  627. data/lib/frameworks/sproutcore/frameworks/qunit/test/test.js +2 -2
  628. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +32 -21
  629. data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +72 -53
  630. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +164 -156
  631. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +20 -20
  632. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +145 -140
  633. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +1 -1
  634. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +2 -2
  635. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +393 -370
  636. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +3 -3
  637. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1045 -999
  638. data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +41 -36
  639. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +10 -4
  640. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +11 -1
  641. data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +7 -7
  642. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +275 -205
  643. data/lib/frameworks/sproutcore/frameworks/runtime/system/function.js +27 -27
  644. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +229 -193
  645. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +24 -24
  646. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +186 -188
  647. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
  648. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +138 -65
  649. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +11 -10
  650. data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +8 -4
  651. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +4 -0
  652. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +112 -23
  653. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +71 -18
  654. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +97 -57
  655. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +22 -22
  656. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/infinite.js +184 -0
  657. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +63 -1
  658. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +73 -36
  659. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +100 -25
  660. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +7 -0
  661. data/lib/frameworks/sproutcore/frameworks/statechart/debug/sequence_matcher.js +1 -1
  662. data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +2 -2
  663. data/lib/frameworks/sproutcore/frameworks/statechart/system/history_state.js +32 -32
  664. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +449 -422
  665. data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +19 -19
  666. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +612 -562
  667. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +115 -62
  668. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +145 -64
  669. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/respond_to_event.js +17 -1
  670. data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +30 -30
  671. data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +34 -34
  672. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +1 -1
  673. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/collection.js +2 -2
  674. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/view.js +3 -5
  675. data/lib/frameworks/sproutcore/frameworks/template_view/tests/panes/template.js +2 -0
  676. data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/core.js +2 -2
  677. data/lib/frameworks/sproutcore/frameworks/template_view/views/bindable_span.js +7 -7
  678. data/lib/frameworks/sproutcore/frameworks/template_view/views/template.js +4 -4
  679. data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +15 -21
  680. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +4 -4
  681. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +35 -35
  682. data/lib/frameworks/sproutcore/scripts/run_sc_server_master.sh +34 -0
  683. data/lib/frameworks/sproutcore/tests/phantomjs_runner.phantomjs +606 -0
  684. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/PanelPane.opacity +0 -0
  685. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/Pointers.opacity +0 -0
  686. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button@2x.png +0 -0
  687. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button@2x.png +0 -0
  688. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button@2x.png +0 -0
  689. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button@2x.png +0 -0
  690. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +3 -4
  691. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +18 -0
  692. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
  693. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel@2x.png +0 -0
  694. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel.png +0 -0
  695. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel@2x.png +0 -0
  696. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.css +34 -14
  697. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers.png +0 -0
  698. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers@2x.png +0 -0
  699. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +5 -4
  700. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +7 -2
  701. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +5 -4
  702. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +6 -3
  703. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +7 -5
  704. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +7 -7
  705. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +37 -37
  706. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +12 -12
  707. data/lib/sproutcore/helpers/static_helper.rb +35 -27
  708. data/sproutcore.gemspec +1 -0
  709. metadata +529 -451
  710. data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-logo.png +0 -0
  711. data/lib/frameworks/sproutcore/apps/showcase/views/button_views.js +0 -55
  712. data/lib/frameworks/sproutcore/apps/showcase/views/container_views.js +0 -29
  713. data/lib/frameworks/sproutcore/apps/showcase/views/grid_views.js +0 -28
  714. data/lib/frameworks/sproutcore/apps/showcase/views/image_button_views.js +0 -22
  715. data/lib/frameworks/sproutcore/apps/showcase/views/image_views.js +0 -51
  716. data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +0 -26
  717. data/lib/frameworks/sproutcore/apps/tests/states/ready.js +0 -56
  718. data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +0 -41
  719. data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +0 -48
  720. data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +0 -41
  721. data/lib/frameworks/sproutcore/apps/tests/states/ready_loading.js +0 -44
  722. data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +0 -31
  723. data/lib/frameworks/sproutcore/apps/tests/states/start.js +0 -39
  724. data/lib/frameworks/sproutcore/apps/welcome/tests/controllers/targets.js +0 -15
  725. data/lib/frameworks/sproutcore/frameworks/animation/Buildfile +0 -3
  726. data/lib/frameworks/sproutcore/frameworks/animation/LICENSE +0 -25
  727. data/lib/frameworks/sproutcore/frameworks/animation/README.md +0 -79
  728. data/lib/frameworks/sproutcore/frameworks/animation/core.js +0 -1208
  729. data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +0 -152
  730. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/parentViewDidChange.js +0 -67
  731. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +0 -203
  732. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +0 -213
  733. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +0 -163
  734. data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +0 -97
  735. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +0 -312
  736. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +0 -961
  737. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split_divider.js +0 -40
  738. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +0 -27
  739. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-logo.png +0 -0
  740. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore.png +0 -0
  741. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +0 -394
  742. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +0 -133
  743. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +0 -18
  744. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +0 -8981
  745. data/lib/frameworks/sproutcore/frameworks/jquery/tests/set_class.js +0 -40
  746. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
@@ -158,7 +158,7 @@ SC.DateFieldView = SC.TextFieldView.extend(
158
158
  // Parse the string format to retrieve and build
159
159
  // a TextSelection array ordered to support tabs behaviour
160
160
  if (SC.empty(ft)) {
161
- throw 'The format string is empty, and must be a valid string.';
161
+ throw new Error('The format string is empty, and must be a valid string.');
162
162
  }
163
163
 
164
164
  var pPos, key, keyPos, startAt = 0, nPos = 0, oPos = 0;
@@ -169,7 +169,7 @@ SC.DateFieldView = SC.TextFieldView.extend(
169
169
 
170
170
  keyPos = _dt.indexOf(key);
171
171
  if (keyPos === -1) {
172
- throw "SC.DateFieldView: The format's key '%@' is not supported.".fmt(key);
172
+ throw new Error("SC.DateFieldView: The format's key '%@' is not supported.".fmt(key));
173
173
  }
174
174
  nPos = nPos + pPos - oPos;
175
175
  arr.push(SC.Object.create({
@@ -4,7 +4,7 @@
4
4
  // Portions ©2008-2011 Apple Inc. All rights reserved.
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
- sc_require('views/list') ;
7
+ sc_require('views/list');
8
8
 
9
9
 
10
10
  /** @class
@@ -37,7 +37,7 @@ SC.GridView = SC.ListView.extend(
37
37
  @default { left:0, right:0, top:0, bottom:0 }
38
38
  @see SC.View#layout
39
39
  */
40
- layout: { left:0, right:0, top:0, bottom:0 },
40
+ layout: { left: 0, right: 0, top: 0, bottom: 0 },
41
41
 
42
42
  /**
43
43
  The common row height for grid items.
@@ -81,34 +81,35 @@ SC.GridView = SC.ListView.extend(
81
81
  insertionOrientation: SC.HORIZONTAL_ORIENTATION,
82
82
 
83
83
  /** @private */
84
- itemsPerRow: function() {
85
- var f = this.get('frame'),
86
- columnWidth = this.get('columnWidth') || 0 ;
84
+ itemsPerRow: function () {
85
+ var frameWidth = this.get('frame').width,
86
+ columnWidth = this.get('columnWidth') || 0;
87
87
 
88
- return (columnWidth <= 0) ? 1 : Math.floor(f.width / columnWidth) ;
89
- }.property('frame', 'columnWidth').cacheable(),
88
+ return (columnWidth < 1) ? 1 : Math.floor(frameWidth / columnWidth);
89
+ }.property('columnWidth', '_frameWidth').cacheable(),
90
90
 
91
91
  /** @private
92
92
  Find the contentIndexes to display in the passed rect. Note that we
93
93
  ignore the width of the rect passed since we need to have a single
94
94
  contiguous range.
95
95
  */
96
- contentIndexesInRect: function(rect) {
97
- var rowHeight = this.get('rowHeight') || 48 ,
96
+ contentIndexesInRect: function (rect) {
97
+ var rowHeight = this.get('rowHeight') || 48,
98
98
  itemsPerRow = this.get('itemsPerRow'),
99
99
  min = Math.floor(SC.minY(rect) / rowHeight) * itemsPerRow,
100
- max = Math.ceil(SC.maxY(rect) / rowHeight) * itemsPerRow ;
101
- return SC.IndexSet.create(min, max-min);
100
+ max = Math.ceil(SC.maxY(rect) / rowHeight) * itemsPerRow;
101
+ return SC.IndexSet.create(min, max - min);
102
102
  },
103
103
 
104
104
  /** @private */
105
- layoutForContentIndex: function(contentIndex) {
105
+ layoutForContentIndex: function (contentIndex) {
106
106
  var rowHeight = this.get('rowHeight') || 48,
107
107
  frameWidth = this.get('frame').width,
108
108
  itemsPerRow = this.get('itemsPerRow'),
109
- columnWidth = Math.floor(frameWidth/itemsPerRow),
109
+ columnWidth = Math.floor(frameWidth / itemsPerRow),
110
110
  row = Math.floor(contentIndex / itemsPerRow),
111
- col = contentIndex - (itemsPerRow*row) ;
111
+ col = contentIndex - (itemsPerRow * row);
112
+
112
113
  return {
113
114
  left: col * columnWidth,
114
115
  top: row * rowHeight,
@@ -121,20 +122,20 @@ SC.GridView = SC.ListView.extend(
121
122
  Overrides default CollectionView method to compute the minimum height
122
123
  of the list view.
123
124
  */
124
- computeLayout: function() {
125
+ computeLayout: function () {
125
126
  var content = this.get('content'),
126
- count = (content) ? content.get('length') : 0,
127
- rowHeight = this.get('rowHeight') || 48,
128
- itemsPerRow = this.get('itemsPerRow'),
129
- rows = Math.ceil(count / itemsPerRow) ;
127
+ count = (content) ? content.get('length') : 0,
128
+ rowHeight = this.get('rowHeight') || 48,
129
+ itemsPerRow = this.get('itemsPerRow'),
130
+ rows = Math.ceil(count / itemsPerRow);
130
131
 
131
132
  // use this cached layout hash to avoid allocing memory...
132
- var ret = this._cachedLayoutHash ;
133
+ var ret = this._cachedLayoutHash;
133
134
  if (!ret) ret = this._cachedLayoutHash = {};
134
135
 
135
136
  // set minHeight
136
- ret.minHeight = rows * rowHeight ;
137
- this.calculatedHeight = ret.minHeight;
137
+ ret.minHeight = rows * rowHeight;
138
+ this.set('calculatedHeight', ret.minHeight);
138
139
  return ret;
139
140
  },
140
141
 
@@ -144,13 +145,13 @@ SC.GridView = SC.ListView.extend(
144
145
  insertionPointClass: SC.View.extend({
145
146
  classNames: ['grid-insertion-point'],
146
147
 
147
- render: function(context, firstTime) {
148
- if (firstTime) context.push('<span class="anchor"></span>') ;
148
+ render: function (context, firstTime) {
149
+ if (firstTime) context.push('<span class="anchor"></span>');
149
150
  }
150
151
  }),
151
152
 
152
153
  /** @private */
153
- showInsertionPoint: function(itemView, dropOperation) {
154
+ showInsertionPoint: function (itemView, dropOperation) {
154
155
  if (!itemView) return;
155
156
 
156
157
  // if drop on, then just add a class...
@@ -173,15 +174,15 @@ SC.GridView = SC.ListView.extend(
173
174
  // If there was an item that was the target of the drop previously, be
174
175
  // sure to clear it.
175
176
  this._lastDropOnView.set('isDropTarget', NO);
176
- this._lastDropOnView = null ;
177
+ this._lastDropOnView = null;
177
178
  }
178
179
 
179
180
  if (!this._insertionPointView) {
180
- this._insertionPointView = this.insertionPointClass.create() ;
181
+ this._insertionPointView = this.insertionPointClass.create();
181
182
  }
182
183
 
183
- var insertionPoint = this._insertionPointView ;
184
- var itemViewFrame = itemView.get('frame') ;
184
+ var insertionPoint = this._insertionPointView;
185
+ var itemViewFrame = itemView.get('frame');
185
186
  var f = { height: itemViewFrame.height - 6,
186
187
  x: itemViewFrame.x,
187
188
  y: itemViewFrame.y + 6,
@@ -189,18 +190,18 @@ SC.GridView = SC.ListView.extend(
189
190
  };
190
191
 
191
192
  if (!SC.rectsEqual(insertionPoint.get('frame'), f)) {
192
- insertionPoint.set('frame', f) ;
193
+ insertionPoint.set('frame', f);
193
194
  }
194
195
 
195
196
  if (insertionPoint.parentNode !== itemView.parentNode) {
196
- itemView.parentNode.appendChild(insertionPoint) ;
197
+ itemView.parentNode.appendChild(insertionPoint);
197
198
  }
198
199
  }
199
200
 
200
201
  },
201
202
 
202
203
  /** @see SC.CollectionView#hideInsertionPoint */
203
- hideInsertionPoint: function() {
204
+ hideInsertionPoint: function () {
204
205
  // If there was an item that was the target of the drop previously, be
205
206
  // sure to clear it.
206
207
  if (this._lastDropOnView) {
@@ -208,38 +209,38 @@ SC.GridView = SC.ListView.extend(
208
209
  this._lastDropOnView = null;
209
210
  }
210
211
 
211
- var view = this._insertionPointView ;
212
+ var view = this._insertionPointView;
212
213
  if (view) view.removeFromParent().destroy();
213
214
  this._insertionPointView = null;
214
215
  },
215
216
 
216
217
  /** @private */
217
- insertionIndexForLocation: function(loc, dropOperation) {
218
+ insertionIndexForLocation: function (loc, dropOperation) {
218
219
  var f = this.get('frame'),
219
220
  sf = this.get('clippingFrame'),
220
221
  itemsPerRow = this.get('itemsPerRow'),
221
222
  columnWidth = Math.floor(f.width / itemsPerRow),
222
- row = Math.floor((loc.y - f.y - sf.y) / this.get('rowHeight')) ;
223
+ row = Math.floor((loc.y - f.y - sf.y) / this.get('rowHeight'));
223
224
 
224
225
  var retOp = SC.DROP_BEFORE,
225
226
  offset = (loc.x - f.x - sf.x),
226
227
  col = Math.floor(offset / columnWidth),
227
- percentage = (offset / columnWidth) - col ;
228
+ percentage = (offset / columnWidth) - col;
228
229
 
229
230
  // if the dropOperation is SC.DROP_ON and we are in the center 60%
230
231
  // then return the current item.
231
232
  if (dropOperation === SC.DROP_ON) {
232
- if (percentage > 0.80) col++ ;
233
+ if (percentage > 0.80) col++;
233
234
  if ((percentage >= 0.20) && (percentage <= 0.80)) {
234
235
  retOp = SC.DROP_ON;
235
236
  }
236
237
  } else {
237
- if (percentage > 0.45) col++ ;
238
+ if (percentage > 0.45) col++;
238
239
  }
239
240
 
240
241
  // convert to index
241
- var ret= (row*itemsPerRow) + col ;
242
- return [ret, retOp] ;
242
+ var ret = (row * itemsPerRow) + col;
243
+ return [ret, retOp];
243
244
  },
244
245
 
245
246
  /** @private
@@ -249,30 +250,42 @@ SC.GridView = SC.ListView.extend(
249
250
 
250
251
  Update all of their layouts if necessary.
251
252
  */
252
- _gv_frameDidChange: function() {
253
+ _gv_frameDidChange: function () {
253
254
  var frame = this.get('frame'),
254
- width;
255
-
256
- // Changes to the width of the frame is the only variable that
257
- // alters the layout of item views.
258
- width = frame.width;
259
- if (this._lastFrameWidth && width !== this._lastFrameWidth) {
260
- this.notifyPropertyChange('itemsPerRow');
255
+ lastFrameWidth = this._lastFrameWidth,
256
+ width = frame.width;
261
257
 
262
- var idx,
263
- itemView,
258
+ // A change to the width of the frame is the only variable that
259
+ // alters the layout of item views and our computed layout.
260
+ if (lastFrameWidth && width !== lastFrameWidth) {
261
+ var itemView,
264
262
  nowShowing = this.get('nowShowing');
265
263
 
266
- // Only loop through the now showing indexes, if the content is sparsely
267
- // loaded we could inadvertently trigger reloading unneeded content.
268
- nowShowing.forEach(function(idx) {
264
+ // Internal property used to indicate a possible itemsPerRow change. This
265
+ // is better than having itemsPerRow dependent on frame which changes frequently.
266
+ this.set('_frameWidth', width);
267
+
268
+ // Only loop through the now showing indexes, if the content was sparsely
269
+ // loaded we would inadvertently load all the content.
270
+ nowShowing.forEach(function (idx) {
269
271
  itemView = this.itemViewForContentIndex(idx);
270
272
  itemView.adjust(this.layoutForContentIndex(idx));
271
273
  }, this);
272
274
  }
273
275
 
274
- // Cache the last width in order to check for differences.
275
276
  this._lastFrameWidth = width;
276
- }.observes('frame')
277
+ }.observes('frame'),
278
+
279
+ /** @private Recompute our layout if itemsPerRow actually changes. */
280
+ _gv_itemsPerRowDidChange: function () {
281
+ var itemsPerRow = this.get('itemsPerRow'),
282
+ lastItemsPerRow = this._lastItemsPerRow || 0;
283
+
284
+ if (itemsPerRow !== lastItemsPerRow) {
285
+ this.invokeOnce('adjustLayout');
286
+ }
287
+
288
+ this._lastItemsPerRow = itemsPerRow;
289
+ }.observes('itemsPerRow')
277
290
 
278
291
  });
@@ -64,7 +64,7 @@ SC.ImageButtonView = SC.ButtonView.extend(
64
64
  @default 'imageButtonRenderDelegate'
65
65
  */
66
66
  renderDelegateName: 'imageButtonRenderDelegate',
67
-
67
+
68
68
  /**
69
69
  @type Array
70
70
  @default ['image']
@@ -73,10 +73,10 @@ SC.ImageButtonView = SC.ButtonView.extend(
73
73
 
74
74
  /**
75
75
  A class name that will be applied to the img tag of the button.
76
-
76
+
77
77
  @type String
78
78
  @default null
79
79
  */
80
80
  image: null
81
81
 
82
- }) ;
82
+ });
@@ -76,6 +76,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
76
76
  */
77
77
  acceptsFirstResponder: YES,
78
78
 
79
+ /** @private SC.CollectionView.prototype */
80
+ exampleView: SC.ListItemView,
81
+
79
82
  /**
80
83
  If set to YES, the default theme will show alternating rows
81
84
  for the views this ListView created through exampleView property.
@@ -134,7 +137,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
134
137
  }
135
138
 
136
139
  if (!del) {
137
- throw "Internal Inconsistancy: ListView must always have CollectionRowDelegate";
140
+ throw new Error("Internal Inconsistancy: ListView must always have CollectionRowDelegate");
138
141
  }
139
142
 
140
143
  del.addObserver('rowHeight', this, func);
@@ -318,20 +321,12 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
318
321
  // find the smallest index changed; invalidate everything past it
319
322
  if (indexes && indexes.isIndexSet) indexes = indexes.get('min');
320
323
  this.reload(SC.IndexSet.create(indexes, len-indexes));
324
+
325
+ // If the row height changes, our entire layout needs to change.
326
+ this.invokeOnce('adjustLayout');
321
327
  return this ;
322
328
  },
323
329
 
324
- /**
325
- @private
326
- When the length changes, so does the layout. CollectionView doesn't
327
- know to do this, because it only asks for layout when it reloads--which
328
- makes sense, as it is agnostic to any layout logic (for all it knows, the
329
- items in the collection are not in a completely random order relative to layout)
330
- */
331
- _sclv_lengthDidChange: function() {
332
- this.adjust(this.computeLayout());
333
- }.observes('length'),
334
-
335
330
  // ..........................................................
336
331
  // SUBCLASS IMPLEMENTATIONS
337
332
  //
@@ -345,7 +340,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
345
340
  var ret = this._sclv_layout;
346
341
  if (!ret) ret = this._sclv_layout = {};
347
342
  ret.minHeight = this.rowOffsetForContentIndex(this.get('length'));
348
- this.set('calculatedHeight',ret.minHeight);
343
+ this.set('calculatedHeight', ret.minHeight);
349
344
  return ret ;
350
345
  },
351
346
 
@@ -647,19 +642,6 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
647
642
  return [index, dropOperation];
648
643
  },
649
644
 
650
- /** @private */
651
- mouseWheel: function(evt) {
652
- // The following commits changes in a list item that is being edited,
653
- // if the list is scrolled.
654
- var inlineEditor = SC.InlineTextFieldView.editor;
655
- if(inlineEditor && inlineEditor.get('isEditing')){
656
- if(inlineEditor.get('delegate').get('displayDelegate')===this){
657
- SC.InlineTextFieldView.commitEditing();
658
- }
659
- }
660
- return NO ;
661
- },
662
-
663
645
  // ..........................................................
664
646
  // INTERNAL SUPPORT
665
647
  //
@@ -38,7 +38,6 @@ SC.LIST_ITEM_ACTION_EJECT = 'sc-list-item-cancel-eject';
38
38
  @extends SC.View
39
39
  @extends SC.Control
40
40
  @extends SC.InlineEditable
41
- @extends SC.StaticLayout
42
41
  @since SproutCore 1.0
43
42
  */
44
43
  SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
@@ -63,14 +62,6 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
63
62
  // KEY PROPERTIES
64
63
  //
65
64
 
66
- /**
67
- The content object the list item will display.
68
-
69
- @type SC.Object
70
- @default null
71
- */
72
- content: null,
73
-
74
65
  /**
75
66
  The index of the content object in the ListView to which this
76
67
  ListItemView belongs.
@@ -273,8 +264,8 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
273
264
  },
274
265
 
275
266
  /** @private */
276
- contentPropertyDidChange: function() {
277
- //if (this.get('isEditing')) this.discardEditing() ;
267
+ contentPropertyDidChange: function () {
268
+ //if (this.get('isEditing')) this.discardEditing();
278
269
  if (this.get('contentIsEditable') !== this.contentIsEditable()) {
279
270
  this.notifyPropertyChange('contentIsEditable');
280
271
  }
@@ -290,9 +281,9 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
290
281
  @type Boolean
291
282
  @observes content
292
283
  */
293
- contentIsEditable: function() {
284
+ contentIsEditable: function () {
294
285
  var content = this.get('content');
295
- return content && (content.get ? content.get('isEditable')!==NO : NO);
286
+ return content && (content.get ? content.get('isEditable') !== NO : NO);
296
287
  }.property('content').cacheable(),
297
288
 
298
289
  /**
@@ -309,7 +300,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
309
300
 
310
301
  @returns {jQuery} jQuery object selecting label elements
311
302
  */
312
- $label: function() {
303
+ $label: function () {
313
304
  return this.$('label');
314
305
  },
315
306
 
@@ -317,27 +308,27 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
317
308
  Determines if the event occurred inside an element with the specified
318
309
  classname or not.
319
310
  */
320
- _isInsideElementWithClassName: function(className, evt) {
311
+ _isInsideElementWithClassName: function (className, evt) {
321
312
  var layer = this.get('layer');
322
- if (!layer) return NO ; // no layer yet -- nothing to do
313
+ if (!layer) return NO; // no layer yet -- nothing to do
323
314
 
324
- var el = SC.$(evt.target) ;
315
+ var el = SC.$(evt.target);
325
316
  var ret = NO;
326
- while(!ret && el.length>0 && (el[0] !== layer)) {
327
- if (el.hasClass(className)) ret = YES ;
328
- el = el.parent() ;
317
+ while (!ret && el.length > 0 && (el[0] !== layer)) {
318
+ if (el.hasClass(className)) ret = YES;
319
+ el = el.parent();
329
320
  }
330
321
  el = layer = null; //avoid memory leaks
331
- return ret ;
322
+ return ret;
332
323
  },
333
324
 
334
325
  /** @private
335
326
  Returns YES if the list item has a checkbox and the event occurred
336
327
  inside of it.
337
328
  */
338
- _isInsideCheckbox: function(evt) {
339
- var del = this.displayDelegate ;
340
- var checkboxKey = this.getDelegateProperty('contentCheckboxKey', del) ;
329
+ _isInsideCheckbox: function (evt) {
330
+ var del = this.displayDelegate;
331
+ var checkboxKey = this.getDelegateProperty('contentCheckboxKey', del);
341
332
  return checkboxKey && this._isInsideElementWithClassName('sc-checkbox-view', evt);
342
333
  },
343
334
 
@@ -345,8 +336,8 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
345
336
  Returns YES if the list item has a disclosure triangle and the event
346
337
  occurred inside of it.
347
338
  */
348
- _isInsideDisclosure: function(evt) {
349
- if (this.get('disclosureState')===SC.LEAF_NODE) return NO;
339
+ _isInsideDisclosure: function (evt) {
340
+ if (this.get('disclosureState') === SC.LEAF_NODE) return NO;
350
341
  return this._isInsideElementWithClassName('sc-disclosure-view', evt);
351
342
  },
352
343
 
@@ -354,8 +345,8 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
354
345
  Returns YES if the list item has a right icon and the event
355
346
  occurred inside of it.
356
347
  */
357
- _isInsideRightIcon: function(evt) {
358
- var del = this.displayDelegate ;
348
+ _isInsideRightIcon: function (evt) {
349
+ var del = this.displayDelegate;
359
350
  var rightIconKey = this.getDelegateProperty('hasContentRightIcon', del) || !SC.none(this.rightIcon);
360
351
  return rightIconKey && this._isInsideElementWithClassName('right-icon', evt);
361
352
  },
@@ -364,36 +355,36 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
364
355
  mouseDown is handled only for clicks on the checkbox view or or action
365
356
  button.
366
357
  */
367
- mouseDown: function(evt) {
358
+ mouseDown: function (evt) {
368
359
  // if content is not editable, then always let collection view handle the
369
360
  // event.
370
- if (!this.get('contentIsEditable')) return NO ;
361
+ if (!this.get('contentIsEditable')) return NO;
371
362
 
372
363
  // if occurred inside checkbox, item view should handle the event.
373
364
  if (this._isInsideCheckbox(evt)) {
374
- this._addCheckboxActiveState() ;
375
- this._isMouseDownOnCheckbox = YES ;
376
- this._isMouseInsideCheckbox = YES ;
377
- return YES ; // listItem should handle this event
365
+ this._addCheckboxActiveState();
366
+ this._isMouseDownOnCheckbox = YES;
367
+ this._isMouseInsideCheckbox = YES;
368
+ return YES; // listItem should handle this event
378
369
 
379
370
  } else if (this._isInsideDisclosure(evt)) {
380
371
  this._addDisclosureActiveState();
381
372
  this._isMouseDownOnDisclosure = YES;
382
- this._isMouseInsideDisclosure = YES ;
373
+ this._isMouseInsideDisclosure = YES;
383
374
  return YES;
384
375
  } else if (this._isInsideRightIcon(evt)) {
385
376
  this._addRightIconActiveState();
386
377
  this._isMouseDownOnRightIcon = YES;
387
- this._isMouseInsideRightIcon = YES ;
378
+ this._isMouseInsideRightIcon = YES;
388
379
  return YES;
389
380
  }
390
381
 
391
- return NO ; // let the collection view handle this event
382
+ return NO; // let the collection view handle this event
392
383
  },
393
384
 
394
385
  /** @private */
395
- mouseUp: function(evt) {
396
- var ret= NO, del, checkboxKey, content, state, idx, set;
386
+ mouseUp: function (evt) {
387
+ var ret = NO, del, checkboxKey, content, state, idx, set;
397
388
 
398
389
  // if mouse was down in checkbox -- then handle mouse up, otherwise
399
390
  // allow parent view to handle event.
@@ -401,19 +392,19 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
401
392
 
402
393
  // update only if mouse inside on mouse up...
403
394
  if (this._isInsideCheckbox(evt)) {
404
- del = this.displayDelegate ;
395
+ del = this.displayDelegate;
405
396
  checkboxKey = this.getDelegateProperty('contentCheckboxKey', del);
406
- content = this.get('content') ;
397
+ content = this.get('content');
407
398
  if (content && content.get) {
408
- var value = content.get(checkboxKey) ;
409
- value = (value === SC.MIXED_STATE) ? YES : !value ;
410
- content.set(checkboxKey, value) ; // update content
399
+ var value = content.get(checkboxKey);
400
+ value = (value === SC.MIXED_STATE) ? YES : !value;
401
+ content.set(checkboxKey, value); // update content
411
402
  this.displayDidChange(); // repaint view...
412
403
  }
413
404
  }
414
405
 
415
- this._removeCheckboxActiveState() ;
416
- ret = YES ;
406
+ this._removeCheckboxActiveState();
407
+ ret = YES;
417
408
 
418
409
  // if mouse as down on disclosure -- handle mouse up. otherwise pass on
419
410
  // to parent.
@@ -437,68 +428,69 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
437
428
  }
438
429
 
439
430
  this._removeDisclosureActiveState();
440
- ret = YES ;
431
+ ret = YES;
441
432
  // if mouse was down in right icon -- then handle mouse up, otherwise
442
433
  // allow parent view to handle event.
443
434
  } else if (this._isMouseDownOnRightIcon) {
444
- this._removeRightIconActiveState() ;
445
- ret = YES ;
435
+ this._removeRightIconActiveState();
436
+ ret = YES;
446
437
  }
447
438
 
448
439
  // clear cached info
449
- this._isMouseInsideCheckbox = this._isMouseDownOnCheckbox = NO ;
450
- this._isMouseDownOnDisclosure = this._isMouseInsideDisclosure = NO ;
451
- this._isMouseInsideRightIcon = this._isMouseDownOnRightIcon = NO ;
452
- return ret ;
440
+ this._isMouseInsideCheckbox = this._isMouseDownOnCheckbox = NO;
441
+ this._isMouseDownOnDisclosure = this._isMouseInsideDisclosure = NO;
442
+ this._isMouseInsideRightIcon = this._isMouseDownOnRightIcon = NO;
443
+ return ret;
453
444
  },
454
445
 
455
446
  /** @private */
456
- mouseMoved: function(evt) {
447
+ mouseMoved: function (evt) {
457
448
  if (this._isMouseDownOnCheckbox && this._isInsideCheckbox(evt)) {
458
- this._addCheckboxActiveState() ;
459
- this._isMouseInsideCheckbox = YES ;
449
+ this._addCheckboxActiveState();
450
+ this._isMouseInsideCheckbox = YES;
460
451
  } else if (this._isMouseDownOnCheckbox) {
461
- this._removeCheckboxActiveState() ;
462
- this._isMouseInsideCheckbox = NO ;
452
+ this._removeCheckboxActiveState();
453
+ this._isMouseInsideCheckbox = NO;
463
454
  } else if (this._isMouseDownOnDisclosure && this._isInsideDisclosure(evt)) {
464
455
  this._addDisclosureActiveState();
465
456
  this._isMouseInsideDisclosure = YES;
466
- } else if (this._isMouseDownOnDisclosure) {
467
- this._removeDisclosureActiveState();
468
- this._isMouseInsideDisclosure = NO ;
457
+ } else if (this._isMouseDownOnDisclosure) {
458
+ this._removeDisclosureActiveState();
459
+ this._isMouseInsideDisclosure = NO;
469
460
  } else if (this._isMouseDownOnRightIcon && this._isInsideRightIcon(evt)) {
470
461
  this._addRightIconActiveState();
471
462
  this._isMouseInsideRightIcon = YES;
472
- } else if (this._isMouseDownOnRightIcon) {
473
- this._removeRightIconActiveState();
474
- this._isMouseInsideRightIcon = NO ;
475
- }
476
- return NO ;
463
+ } else if (this._isMouseDownOnRightIcon) {
464
+ this._removeRightIconActiveState();
465
+ this._isMouseInsideRightIcon = NO;
466
+ }
467
+
468
+ return NO;
477
469
  },
478
470
 
479
471
  /** @private */
480
- touchStart: function(evt){
472
+ touchStart: function (evt) {
481
473
  return this.mouseDown(evt);
482
474
  },
483
475
 
484
476
  /** @private */
485
- touchEnd: function(evt){
477
+ touchEnd: function (evt) {
486
478
  return this.mouseUp(evt);
487
479
  },
488
480
 
489
481
  /** @private */
490
- touchEntered: function(evt){
482
+ touchEntered: function (evt) {
491
483
  return this.mouseEntered(evt);
492
484
  },
493
485
 
494
486
  /** @private */
495
- touchExited: function(evt){
487
+ touchExited: function (evt) {
496
488
  return this.mouseExited(evt);
497
489
  },
498
490
 
499
491
 
500
492
  /** @private */
501
- _addCheckboxActiveState: function() {
493
+ _addCheckboxActiveState: function () {
502
494
  if (this.get('isEnabled')) {
503
495
  if (this._checkboxRenderDelegate) {
504
496
  var source = this._checkboxRenderSource;
@@ -514,7 +506,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
514
506
  },
515
507
 
516
508
  /** @private */
517
- _removeCheckboxActiveState: function() {
509
+ _removeCheckboxActiveState: function () {
518
510
  if (this._checkboxRenderer) {
519
511
  var source = this._checkboxRenderSource;
520
512
 
@@ -528,7 +520,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
528
520
  },
529
521
 
530
522
  /** @private */
531
- _addDisclosureActiveState: function() {
523
+ _addDisclosureActiveState: function () {
532
524
  if (this.get('isEnabled')) {
533
525
  if (this._disclosureRenderDelegate) {
534
526
  var source = this._disclosureRenderSource;
@@ -544,7 +536,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
544
536
  },
545
537
 
546
538
  /** @private */
547
- _removeDisclosureActiveState: function() {
539
+ _removeDisclosureActiveState: function () {
548
540
  if (this._disclosureRenderer) {
549
541
  var source = this._disclosureRenderSource;
550
542
  source.set('isActive', NO);
@@ -557,13 +549,13 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
557
549
  },
558
550
 
559
551
  /** @private */
560
- _addRightIconActiveState: function() {
561
- this.$('img.right-icon').setClass('active', YES);
552
+ _addRightIconActiveState: function () {
553
+ this.$('img.right-icon').setClass('active', YES);
562
554
  },
563
555
 
564
556
  /** @private */
565
- _removeRightIconActiveState: function() {
566
- this.$('img.right-icon').removeClass('active');
557
+ _removeRightIconActiveState: function () {
558
+ this.$('img.right-icon').removeClass('active');
567
559
  },
568
560
 
569
561
  /** @private
@@ -576,23 +568,23 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
576
568
  @param evt {Event} the mouseUp event.
577
569
  @returns {Boolean} YES if the mouse was on the content element itself.
578
570
  */
579
- contentHitTest: function(evt) {
580
- // if not content value is returned, not much to do.
581
- var del = this.displayDelegate ;
582
- var labelKey = this.getDelegateProperty('contentValueKey', del) ;
583
- if (!labelKey) return NO ;
584
-
585
- // get the element to check for.
586
- var el = this.$label()[0] ;
587
- if (!el) return NO ; // no label to check for.
588
-
589
- var cur = evt.target, layer = this.get('layer') ;
590
- while(cur && (cur !== layer) && (cur !== window)) {
591
- if (cur === el) return YES ;
592
- cur = cur.parentNode ;
593
- }
571
+ contentHitTest: function (evt) {
572
+ // if not content value is returned, not much to do.
573
+ var del = this.displayDelegate;
574
+ var labelKey = this.getDelegateProperty('contentValueKey', del);
575
+ if (!labelKey) return NO;
576
+
577
+ // get the element to check for.
578
+ var el = this.$label()[0];
579
+ if (!el) return NO; // no label to check for.
580
+
581
+ var cur = evt.target, layer = this.get('layer');
582
+ while (cur && (cur !== layer) && (cur !== window)) {
583
+ if (cur === el) return YES;
584
+ cur = cur.parentNode;
585
+ }
594
586
 
595
- return NO;
587
+ return NO;
596
588
  },
597
589
 
598
590
  /*
@@ -603,7 +595,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
603
595
  before editing begins
604
596
  @returns {Boolean} YES if successful
605
597
  */
606
- beginEditing: function(original, scrollIfNeeded) {
598
+ beginEditing: function (original, scrollIfNeeded) {
607
599
  var el = this.$label(),
608
600
  parent = this.get('parentView');
609
601
 
@@ -612,15 +604,17 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
612
604
  // and begin editing. Right now collection view will regenerate the item
613
605
  // view too often.
614
606
  if (scrollIfNeeded && this.scrollToVisible()) {
615
- var collectionView = this.get('owner'), idx = this.get('contentIndex');
616
- this.invokeLast(function() {
607
+ var collectionView = this.get('owner'),
608
+ idx = this.get('contentIndex');
609
+
610
+ this.invokeLast(function () {
617
611
  var item = collectionView.itemViewForContentIndex(idx);
618
612
  if (item && item.beginEditing) item.beginEditing(NO);
619
613
  });
620
614
  return YES; // let the scroll happen then begin editing...
621
615
  }
622
616
 
623
- else if (!parent || !el || el.get('length')===0) return NO ;
617
+ else if (!parent || !el || el.get('length') === 0) return NO;
624
618
 
625
619
  else return original();
626
620
  }.enhance(),
@@ -628,15 +622,14 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
628
622
  /*
629
623
  Configures the editor to overlay the label properly.
630
624
  */
631
- inlineEditorWillBeginEditing: function(editor, editable, value) {
625
+ inlineEditorWillBeginEditing: function (editor, editable, value) {
632
626
  var content = this.get('content'),
633
627
  del = this.get('displayDelegate'),
634
628
  labelKey = this.getDelegateProperty('contentValueKey', del),
635
- parent = this.get('parentView'),
636
629
  el = this.$label(),
637
630
  validator = this.get('validator'),
638
631
  f, v, offset, fontSize, top, lineHeight, escapeHTML,
639
- lineHeightShift, targetLineHeight, ret ;
632
+ lineHeightShift, targetLineHeight;
640
633
 
641
634
  v = (labelKey && content) ? (content.get ? content.get(labelKey) : content[labelKey]) : content;
642
635
 
@@ -648,26 +641,26 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
648
641
  fontSize = el.css('fontSize');
649
642
  top = this.$().css('top');
650
643
 
651
- if (top) top = parseInt(top.substring(0,top.length-2),0);
652
- else top =0;
644
+ if (top) top = parseInt(top.substring(0, top.length - 2), 0);
645
+ else top = 0;
653
646
 
654
647
  lineHeightShift = 0;
655
648
 
656
649
  if (fontSize && lineHeight) {
657
- targetLineHeight = fontSize * 1.5 ;
650
+ targetLineHeight = fontSize * 1.5;
658
651
  if (targetLineHeight < lineHeight) {
659
652
  el.css({ lineHeight: '1.5' });
660
653
  lineHeightShift = (lineHeight - targetLineHeight) / 2;
661
- } else oldLineHeight = null ;
654
+ } else this._oldLineHeight = null;
662
655
  }
663
656
 
664
657
  el = el[0];
665
658
  offset = SC.offset(el);
666
659
 
667
660
  f.x = offset.x;
668
- f.y = offset.y+top + lineHeightShift ;
669
- f.height = el.offsetHeight ;
670
- f.width = el.offsetWidth ;
661
+ f.y = offset.y + top + lineHeightShift;
662
+ f.height = el.offsetHeight;
663
+ f.width = el.offsetWidth;
671
664
 
672
665
  escapeHTML = this.get('escapeHTML');
673
666
 
@@ -676,44 +669,43 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
676
669
  exampleFrame: f,
677
670
  exampleElement: el,
678
671
  multiline: NO,
679
- isCollection: YES,
680
672
  validator: validator,
681
673
  escapeHTML: escapeHTML
682
- }) ;
674
+ });
683
675
  },
684
676
 
685
677
  /** @private
686
678
  Allow editing.
687
679
  */
688
- inlineEditorShouldBeginEditing: function(inlineEditor) {
680
+ inlineEditorShouldBeginEditing: function (inlineEditor) {
689
681
  return YES;
690
682
  },
691
683
 
692
684
  /** @private
693
685
  Hide the label view while the inline editor covers it.
694
686
  */
695
- inlineEditorDidBeginEditing: function(original, inlineEditor, value, editable) {
687
+ inlineEditorDidBeginEditing: function (original, inlineEditor, value, editable) {
696
688
  original(inlineEditor, value, editable);
697
689
 
698
- var el = this.$label() ;
690
+ var el = this.$label();
699
691
  this._oldOpacity = el.css('opacity');
700
- el.css('opacity', 0.0) ;
692
+ el.css('opacity', 0.0);
701
693
 
702
694
  // restore old line height for original item if the old line height
703
695
  // was saved.
704
- if (this._oldLineHeight) el.css({ lineHeight: this._oldLineHeight }) ;
696
+ if (this._oldLineHeight) el.css({ lineHeight: this._oldLineHeight });
705
697
  }.enhance(),
706
698
 
707
699
  /** @private
708
700
  Update the field value and make it visible again.
709
701
  */
710
- inlineEditorDidCommitEditing: function(editor, finalValue, editable) {
711
- var content = this.get('content') ;
712
- var del = this.displayDelegate ;
713
- var labelKey = this.getDelegateProperty('contentValueKey', del) ;
702
+ inlineEditorDidCommitEditing: function (editor, finalValue, editable) {
703
+ var content = this.get('content');
704
+ var del = this.displayDelegate;
705
+ var labelKey = this.getDelegateProperty('contentValueKey', del);
714
706
 
715
- if(labelKey && content) {
716
- if(content.set) content.set(labelKey, finalValue);
707
+ if (labelKey && content) {
708
+ if (content.set) content.set(labelKey, finalValue);
717
709
  else content[labelKey] = finalValue;
718
710
  }
719
711
 
@@ -724,12 +716,16 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
724
716
  this._endEditing();
725
717
  },
726
718
 
727
- _endEditing: function(original) {
719
+ _endEditing: function (original) {
728
720
  this.$label().css('opacity', this._oldOpacity);
729
721
 
730
722
  original();
731
723
  }.enhance(),
732
724
 
725
+ /** SC.ListItemView is not able to update itself in place at this time. */
726
+ // TODO: add update: support.
727
+ isReusable: false,
728
+
733
729
  /** @private
734
730
  Fills the passed html-array with strings that can be joined to form the
735
731
  innerHTML of the receiver element. Also populates an array of classNames
@@ -739,7 +735,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
739
735
  @param {Boolean} firstTime
740
736
  @returns {void}
741
737
  */
742
- render: function(context, firstTime) {
738
+ render: function (context, firstTime) {
743
739
  var content = this.get('content'),
744
740
  del = this.displayDelegate,
745
741
  level = this.get('outlineLevel'),
@@ -747,36 +743,47 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
747
743
  key, value, working, classArray = [];
748
744
 
749
745
  // add alternating row classes
750
- classArray.push((this.get('contentIndex')%2 === 0) ? 'even' : 'odd');
746
+ classArray.push((this.get('contentIndex') % 2 === 0) ? 'even' : 'odd');
751
747
  context.setClass('disabled', !this.get('isEnabled'));
752
748
  context.setClass('drop-target', this.get('isDropTarget'));
753
749
 
754
750
  // outline level wrapper
755
751
  working = context.begin("div").addClass("sc-outline");
756
- if (level>=0 && indent>0) working.addStyle("left", indent*(level+1));
752
+ if (level >= 0 && indent > 0) working.addStyle("left", indent * (level + 1));
757
753
 
758
754
  // handle disclosure triangle
759
755
  value = this.get('disclosureState');
760
756
  if (value !== SC.LEAF_NODE) {
761
757
  this.renderDisclosure(working, value);
762
758
  classArray.push('has-disclosure');
763
- }
759
+ } else if (this._disclosureRenderSource) {
760
+ // If previously rendered a disclosure, clean up.
761
+ context.removeClass('has-disclosure');
762
+ this._disclosureRenderSource.destroy();
764
763
 
764
+ this._disclosureRenderSource = this._disclosureRenderDelegate = null;
765
+ }
765
766
 
766
767
  // handle checkbox
767
- key = this.getDelegateProperty('contentCheckboxKey', del) ;
768
+ key = this.getDelegateProperty('contentCheckboxKey', del);
768
769
  if (key) {
769
- value = content ? (content.get ? content.get(key) : content[key]) : NO ;
770
+ value = content ? (content.get ? content.get(key) : content[key]) : NO;
770
771
  if (value !== null) {
771
772
  this.renderCheckbox(working, value);
772
773
  classArray.push('has-checkbox');
774
+ } else if (this._checkboxRenderSource) {
775
+ // If previously rendered a checkbox, clean up.
776
+ context.removeClass('has-checkbox');
777
+ this._checkboxRenderSource.destroy();
778
+
779
+ this._checkboxRenderSource = this._checkboxRenderDelegate = null;
773
780
  }
774
781
  }
775
782
 
776
783
  // handle icon
777
784
  if (this.getDelegateProperty('hasContentIcon', del)) {
778
- key = this.getDelegateProperty('contentIconKey', del) ;
779
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
785
+ key = this.getDelegateProperty('contentIconKey', del);
786
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : null;
780
787
 
781
788
  if (value) {
782
789
  this.renderIcon(working, value);
@@ -789,36 +796,45 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
789
796
  }
790
797
 
791
798
  // handle label -- always invoke
792
- key = this.getDelegateProperty('contentValueKey', del) ;
793
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : content ;
799
+ key = this.getDelegateProperty('contentValueKey', del);
800
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : content;
794
801
  if (value && SC.typeOf(value) !== SC.T_STRING) value = value.toString();
795
802
  if (this.get('escapeHTML')) value = SC.RenderContext.escapeHTML(value);
796
803
  this.renderLabel(working, value);
797
804
 
798
805
  // handle right icon
799
806
  if (this.getDelegateProperty('hasContentRightIcon', del)) {
800
- key = this.getDelegateProperty('contentRightIconKey', del) ;
801
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
807
+ key = this.getDelegateProperty('contentRightIconKey', del);
808
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : null;
802
809
 
810
+ if (value) {
811
+ this.renderRightIcon(working, value);
812
+ classArray.push('has-right-icon');
813
+ }
814
+ } else if (this.get('rightIcon')) {
815
+ value = this.get('rightIcon');
803
816
  this.renderRightIcon(working, value);
804
817
  classArray.push('has-right-icon');
805
818
  }
806
819
 
807
820
  // handle unread count
808
- key = this.getDelegateProperty('contentUnreadCountKey', del) ;
809
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
821
+ key = this.getDelegateProperty('contentUnreadCountKey', del);
822
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : null;
810
823
  if (!SC.none(value) && (value !== 0)) {
811
- this.renderCount(working, value) ;
824
+ this.renderCount(working, value);
812
825
  var digits = ['zero', 'one', 'two', 'three', 'four', 'five'];
813
826
  var valueLength = value.toString().length;
814
827
  var digitsLength = digits.length;
815
- var digit = (valueLength < digitsLength) ? digits[valueLength] : digits[digitsLength-1];
816
- classArray.push('has-count '+digit+'-digit');
828
+ var digit = (valueLength < digitsLength) ? digits[valueLength] : digits[digitsLength - 1];
829
+ classArray.push('has-count', digit + '-digit');
830
+ } else {
831
+ // If previously rendered a count, clean up.
832
+ context.removeClass('has-count');
817
833
  }
818
834
 
819
835
  // handle action
820
- key = this.getDelegateProperty('listItemActionProperty', del) ;
821
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : null ;
836
+ key = this.getDelegateProperty('listItemActionProperty', del);
837
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : null;
822
838
  if (value) {
823
839
  this.renderAction(working, value);
824
840
  classArray.push('has-action');
@@ -827,7 +843,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
827
843
  // handle branch
828
844
  if (this.getDelegateProperty('hasContentBranch', del)) {
829
845
  key = this.getDelegateProperty('contentIsBranchKey', del);
830
- value = (key && content) ? (content.get ? content.get(key) : content[key]) : NO ;
846
+ value = (key && content) ? (content.get ? content.get(key) : content[key]) : NO;
831
847
  this.renderBranch(working, value);
832
848
  classArray.push('has-branch');
833
849
  }
@@ -844,7 +860,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
844
860
  @param {Boolean} state YES, NO or SC.MIXED_STATE
845
861
  @returns {void}
846
862
  */
847
- renderDisclosure: function(context, state) {
863
+ renderDisclosure: function (context, state) {
848
864
  var renderer = this.get('theme').disclosureRenderDelegate;
849
865
 
850
866
  context = context.begin('div')
@@ -868,7 +884,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
868
884
 
869
885
  context = context.end();
870
886
  this._disclosureRenderDelegate = renderer;
871
- },
887
+ },
872
888
 
873
889
  /** @private
874
890
  Adds a checkbox with the appropriate state to the content. This method
@@ -879,7 +895,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
879
895
  @param {Boolean} state YES, NO or SC.MIXED_STATE
880
896
  @returns {void}
881
897
  */
882
- renderCheckbox: function(context, state) {
898
+ renderCheckbox: function (context, state) {
883
899
  var renderer = this.get('theme').checkboxRenderDelegate;
884
900
 
885
901
  // note: checkbox-view is really not the best thing to do here; we should do
@@ -906,7 +922,7 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
906
922
  context = context.end();
907
923
 
908
924
  this._checkboxRenderDelegate = renderer;
909
- },
925
+ },
910
926
 
911
927
  /** @private
912
928
  Generates an icon for the label based on the content. This method will
@@ -917,20 +933,22 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
917
933
  @param {String} icon a URL or class name.
918
934
  @returns {void}
919
935
  */
920
- renderIcon: function(context, icon) {
936
+ renderIcon: function (context, icon) {
921
937
  // get a class name and url to include if relevant
922
- var url = null, className = null , classArray=[];
938
+ var url = null, className = null, classArray = [];
923
939
  if (icon && SC.ImageView.valueIsUrl(icon)) {
924
- url = icon; className = '' ;
940
+ url = icon;
941
+ className = '';
925
942
  } else {
926
- className = icon; url = SC.BLANK_IMAGE_URL ;
943
+ className = icon;
944
+ url = SC.BLANK_IMAGE_URL;
927
945
  }
928
946
 
929
947
  // generate the img element...
930
- classArray.push(className,'icon');
948
+ classArray.push(className, 'icon');
931
949
  context.begin('img')
932
950
  .addClass(classArray)
933
- .attr('src', url)
951
+ .setAttr('src', url)
934
952
  .end();
935
953
  },
936
954
 
@@ -942,8 +960,8 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
942
960
  @param {String} label the label to display, already HTML escaped.
943
961
  @returns {void}
944
962
  */
945
- renderLabel: function(context, label) {
946
- context.push('<label>', label || '', '</label>') ;
963
+ renderLabel: function (context, label) {
964
+ context.push('<label>', label || '', '</label>');
947
965
  },
948
966
 
949
967
  /** @private
@@ -955,20 +973,24 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
955
973
  @param {String} icon a URL or class name.
956
974
  @returns {void}
957
975
  */
958
- renderRightIcon: function(context, icon) {
976
+ renderRightIcon: function (context, icon) {
959
977
  // get a class name and url to include if relevant
960
- var url = null, className = null, classArray=[];
978
+ var url = null,
979
+ className = null,
980
+ classArray = [];
961
981
  if (icon && SC.ImageView.valueIsUrl(icon)) {
962
- url = icon; className = '' ;
982
+ url = icon;
983
+ className = '';
963
984
  } else {
964
- className = icon; url = SC.BLANK_IMAGE_URL ;
985
+ className = icon;
986
+ url = SC.BLANK_IMAGE_URL;
965
987
  }
966
988
 
967
989
  // generate the img element...
968
- classArray.push('right-icon',className);
990
+ classArray.push('right-icon', className);
969
991
  context.begin('img')
970
992
  .addClass(classArray)
971
- .attr('src', url)
993
+ .setAttr('src', url)
972
994
  .end();
973
995
  },
974
996
 
@@ -981,9 +1003,9 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
981
1003
  @param {Number} count the count
982
1004
  @returns {void}
983
1005
  */
984
- renderCount: function(context, count) {
1006
+ renderCount: function (context, count) {
985
1007
  context.push('<span class="count"><span class="inner">',
986
- count.toString(),'</span></span>') ;
1008
+ count.toString(), '</span></span>');
987
1009
  },
988
1010
 
989
1011
  /** @private
@@ -994,8 +1016,8 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
994
1016
  @param {String} actionClassName the name of the action item
995
1017
  @returns {void}
996
1018
  */
997
- renderAction: function(context, actionClassName) {
998
- context.push('<img src="',SC.BLANK_IMAGE_URL,'" class="action" />');
1019
+ renderAction: function (context, actionClassName) {
1020
+ context.push('<img src="', SC.BLANK_IMAGE_URL, '" class="action" />');
999
1021
  },
1000
1022
 
1001
1023
  /** @private
@@ -1006,9 +1028,9 @@ SC.ListItemView = SC.View.extend(SC.InlineEditable, SC.Control,
1006
1028
  @param {Boolean} hasBranch YES if the item has a branch
1007
1029
  @returns {void}
1008
1030
  */
1009
- renderBranch: function(context, hasBranch) {
1010
- var classArray=[];
1011
- classArray.push('branch',hasBranch ? 'branch-visible' : 'branch-hidden');
1031
+ renderBranch: function (context, hasBranch) {
1032
+ var classArray = [];
1033
+ classArray.push('branch', hasBranch ? 'branch-visible' : 'branch-hidden');
1012
1034
  context.begin('span')
1013
1035
  .addClass(classArray)
1014
1036
  .push('&nbsp;')