sproutcore 1.9.2 → 1.10.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
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;')