sproutcore 1.9.2 → 1.10.0.rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (746) hide show
  1. checksums.yaml +15 -0
  2. data/VERSION.yml +2 -2
  3. data/bin/sc-build +12 -9
  4. data/bin/sc-build-number +12 -9
  5. data/bin/sc-docs +12 -15
  6. data/bin/sc-gen +12 -9
  7. data/bin/sc-init +12 -9
  8. data/bin/sc-manifest +12 -9
  9. data/bin/sc-server +12 -9
  10. data/bin/sproutcore +12 -9
  11. data/lib/frameworks/sproutcore/Buildfile +14 -17
  12. data/lib/frameworks/sproutcore/CHANGELOG.md +214 -3
  13. data/lib/frameworks/sproutcore/README.md +4 -1
  14. data/lib/frameworks/sproutcore/apps/greenhouse/Buildfile +13 -0
  15. data/lib/frameworks/sproutcore/{frameworks/experimental/apps/greenhouse/README → apps/greenhouse/README.md} +1 -1
  16. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/TODO +0 -0
  17. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/beautify.js +0 -0
  18. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/design.js +3 -3
  19. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/file.js +3 -3
  20. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/files.js +3 -3
  21. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/layout.js +9 -9
  22. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/library.js +23 -23
  23. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/page.js +1 -1
  24. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/property.js +1 -1
  25. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/property_editor.js +2 -2
  26. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/target.js +1 -1
  27. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/targets.js +12 -12
  28. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/view_configs.js +15 -15
  29. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/core.js +14 -14
  30. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/core_file.js +0 -0
  31. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/data_source.js +42 -42
  32. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/app_page.js +45 -45
  33. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/app-selector.css +0 -0
  34. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/button.css +0 -0
  35. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/dock.css +0 -0
  36. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/general.css +0 -0
  37. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/icons.css +5 -0
  38. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/main-page.css +0 -0
  39. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/menu.css +0 -0
  40. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/modal.css +0 -0
  41. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/picker.css +0 -0
  42. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/search.css +0 -0
  43. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/text-field.css +0 -0
  44. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/dialogs.js +0 -0
  45. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.eot +0 -0
  46. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.otf +0 -0
  47. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.woff +0 -0
  48. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.eot +0 -0
  49. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.otf +0 -0
  50. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.woff +0 -0
  51. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/app-selector/choose-app.png +0 -0
  52. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/app-selector/list-item-sel.png +0 -0
  53. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-l.png +0 -0
  54. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-m.png +0 -0
  55. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-r.png +0 -0
  56. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-l.png +0 -0
  57. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-m.png +0 -0
  58. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-r.png +0 -0
  59. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/active-l.png +0 -0
  60. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/active-r.png +0 -0
  61. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-l.png +0 -0
  62. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-r.png +0 -0
  63. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/regular-l.png +0 -0
  64. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/regular-r.png +0 -0
  65. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-l.png +0 -0
  66. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-r.png +0 -0
  67. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-l.png +0 -0
  68. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-r.png +0 -0
  69. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-l.png +0 -0
  70. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-r.png +0 -0
  71. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-l.png +0 -0
  72. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-m.png +0 -0
  73. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-r.png +0 -0
  74. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-l.png +0 -0
  75. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-r.png +0 -0
  76. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-l.png +0 -0
  77. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-r.png +0 -0
  78. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-l.png +0 -0
  79. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-r.png +0 -0
  80. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-l.png +0 -0
  81. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-r.png +0 -0
  82. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-l.png +0 -0
  83. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-m.png +0 -0
  84. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-r.png +0 -0
  85. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-l.png +0 -0
  86. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-m.png +0 -0
  87. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-r.png +0 -0
  88. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-l.png +0 -0
  89. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-m.png +0 -0
  90. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-r.png +0 -0
  91. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-l.png +0 -0
  92. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-m.png +0 -0
  93. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-r.png +0 -0
  94. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-l.png +0 -0
  95. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-m.png +0 -0
  96. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-r.png +0 -0
  97. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/active-m.png +0 -0
  98. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/disabled-m.png +0 -0
  99. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/regular-m.png +0 -0
  100. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-active-m.png +0 -0
  101. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-disabled-m.png +0 -0
  102. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-m.png +0 -0
  103. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/active-l.png +0 -0
  104. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/active-r.png +0 -0
  105. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/disabled-l.png +0 -0
  106. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/disabled-r.png +0 -0
  107. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/regular-l.png +0 -0
  108. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/regular-r.png +0 -0
  109. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-active-l.png +0 -0
  110. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-active-r.png +0 -0
  111. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-l.png +0 -0
  112. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-r.png +0 -0
  113. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-l.png +0 -0
  114. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-r.png +0 -0
  115. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/actions-active.png +0 -0
  116. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/actions.png +0 -0
  117. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/inspector-active.png +0 -0
  118. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/inspector.png +0 -0
  119. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/library-active.png +0 -0
  120. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/library.png +0 -0
  121. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/projects-active.png +0 -0
  122. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/projects.png +0 -0
  123. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/run-active.png +0 -0
  124. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/run.png +0 -0
  125. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/save-active.png +0 -0
  126. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/save.png +0 -0
  127. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/greenhouse-l.png +0 -0
  128. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/greenhouse-s.png +0 -0
  129. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/sproutcore.png +0 -0
  130. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/main-bg.png +0 -0
  131. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom-left.png +0 -0
  132. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom-right.png +0 -0
  133. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom.png +0 -0
  134. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/close-active.png +0 -0
  135. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/close.png +0 -0
  136. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/left.png +0 -0
  137. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-bottom.png +0 -0
  138. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-left.png +0 -0
  139. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-right.png +0 -0
  140. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-top.png +0 -0
  141. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/right.png +0 -0
  142. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/search-active.png +0 -0
  143. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/search.png +0 -0
  144. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top-left.png +0 -0
  145. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top-right.png +0 -0
  146. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top.png +0 -0
  147. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/images/sc-icon-sproutcore-16.png +0 -0
  148. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/toolbar-bg.png +0 -0
  149. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/inspectors.js +0 -0
  150. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/loading.rhtml +0 -0
  151. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/main_page.js +0 -0
  152. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/strings.js +0 -0
  153. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/fixtures/file.js +0 -0
  154. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/main.js +5 -5
  155. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/mixins/drop_down.js +14 -14
  156. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/design.js +4 -4
  157. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/dir.js +12 -12
  158. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/file.js +7 -9
  159. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/target.js +12 -12
  160. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/view_config.js +10 -10
  161. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/resources/test_page.js +0 -0
  162. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/inspector.js +11 -11
  163. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/library.js +10 -10
  164. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/main.js +26 -25
  165. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/modals.js +10 -10
  166. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/ready.js +15 -15
  167. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/design.js +0 -0
  168. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/designs.js +0 -0
  169. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/file.js +0 -0
  170. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/files.js +0 -0
  171. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/models/file.js +0 -0
  172. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/models/view_config.js +0 -0
  173. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/views/list_item.js +0 -0
  174. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/views/plist_item.js +1 -5
  175. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/theme.js +6 -6
  176. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/anchor.js +43 -43
  177. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/application_list_item.js +2 -2
  178. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/event_blocker.js +7 -7
  179. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/label_designer.js +0 -0
  180. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/list_item.js +8 -8
  181. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/plist_item.js +23 -23
  182. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/simple_button.js +31 -31
  183. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/tear_off_picker.js +12 -12
  184. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/web.js +5 -5
  185. data/lib/frameworks/sproutcore/apps/media_examples/core.js +5 -6
  186. data/lib/frameworks/sproutcore/apps/media_examples/views/audio_view.js +16 -17
  187. data/lib/frameworks/sproutcore/apps/media_examples/views/camera_view.js +4 -5
  188. data/lib/frameworks/sproutcore/apps/media_examples/views/capabilities_view.js +17 -18
  189. data/lib/frameworks/sproutcore/apps/media_examples/views/microphone_view.js +4 -5
  190. data/lib/frameworks/sproutcore/apps/media_examples/views/video_view.js +18 -19
  191. data/lib/frameworks/sproutcore/apps/showcase/Buildfile +2 -2
  192. data/lib/frameworks/sproutcore/apps/showcase/README +1 -1
  193. data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +27 -7
  194. data/lib/frameworks/sproutcore/apps/showcase/core.js +6 -4
  195. data/lib/frameworks/sproutcore/apps/showcase/main.js +2 -1
  196. data/lib/frameworks/sproutcore/apps/showcase/patch.diff +529 -0
  197. data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-128.png +0 -0
  198. data/lib/frameworks/sproutcore/apps/showcase/resources/main_page.js +3 -2
  199. data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +35 -16
  200. data/lib/frameworks/sproutcore/apps/showcase/resources/views_page.js +195 -10
  201. data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +2 -1
  202. data/lib/frameworks/sproutcore/apps/showcase/theme.js +2 -1
  203. data/lib/frameworks/sproutcore/apps/showcase/views/checkbox_views.js +2 -1
  204. data/lib/frameworks/sproutcore/apps/showcase/views/date_field_views.js +2 -1
  205. data/lib/frameworks/sproutcore/apps/showcase/views/disclosure_views.js +2 -1
  206. data/lib/frameworks/sproutcore/apps/showcase/views/label_views.js +2 -1
  207. data/lib/frameworks/sproutcore/apps/showcase/views/list_views.js +2 -1
  208. data/lib/frameworks/sproutcore/apps/showcase/views/popup_button_views.js +3 -2
  209. data/lib/frameworks/sproutcore/apps/showcase/views/progress_views.js +2 -1
  210. data/lib/frameworks/sproutcore/apps/showcase/views/radio_views.js +2 -1
  211. data/lib/frameworks/sproutcore/apps/showcase/views/scroll_views.js +2 -1
  212. data/lib/frameworks/sproutcore/apps/showcase/views/segmented_views.js +2 -1
  213. data/lib/frameworks/sproutcore/apps/showcase/views/select_views.js +10 -9
  214. data/lib/frameworks/sproutcore/apps/showcase/views/slider_views.js +2 -1
  215. data/lib/frameworks/sproutcore/apps/showcase/views/source_list_views.js +2 -1
  216. data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +2 -1
  217. data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +2 -1
  218. data/lib/frameworks/sproutcore/apps/showcase/views/static_content_views.js +2 -1
  219. data/lib/frameworks/sproutcore/apps/showcase/views/tab_views.js +2 -1
  220. data/lib/frameworks/sproutcore/apps/showcase/views/text_field_views.js +2 -1
  221. data/lib/frameworks/sproutcore/apps/showcase/views/toolbar_views.js +2 -1
  222. data/lib/frameworks/sproutcore/apps/showcase/views/views_item_view.js +15 -6
  223. data/lib/frameworks/sproutcore/apps/showcase/views/views_list_view.js +5 -4
  224. data/lib/frameworks/sproutcore/apps/showcase/views/web_views.js +2 -1
  225. data/lib/frameworks/sproutcore/apps/showcase/views/well_views.js +2 -1
  226. data/lib/frameworks/sproutcore/apps/showcase/views/workspace_views.js +2 -1
  227. data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +5 -5
  228. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +15 -15
  229. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/styles.css +3 -0
  230. data/lib/frameworks/sproutcore/apps/tests/controllers/source.js +11 -11
  231. data/lib/frameworks/sproutcore/apps/tests/controllers/target.js +6 -12
  232. data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +28 -33
  233. data/lib/frameworks/sproutcore/apps/tests/controllers/{detail.js → test.js} +14 -12
  234. data/lib/frameworks/sproutcore/apps/tests/controllers/tests.js +11 -15
  235. data/lib/frameworks/sproutcore/apps/tests/core.js +8 -113
  236. data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +9 -19
  237. data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +81 -92
  238. data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +3 -1
  239. data/lib/frameworks/sproutcore/apps/tests/main.js +8 -13
  240. data/lib/frameworks/sproutcore/apps/tests/statechart.js +268 -0
  241. data/lib/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +4 -4
  242. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +16 -16
  243. data/lib/frameworks/sproutcore/apps/welcome/core.js +9 -9
  244. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/images/sproutcore.png +0 -0
  245. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +22 -25
  246. data/lib/frameworks/sproutcore/apps/welcome/main.js +3 -3
  247. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-landscape.jpg b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-landscape.jpg +0 -0
  248. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-landscape.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-landscape.png +0 -0
  249. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-portrait.jpg b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-portrait.jpg +0 -0
  250. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-portrait.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-portrait.png +0 -0
  251. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup.png +0 -0
  252. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +21 -7
  253. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +35 -2
  254. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +142 -75
  255. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +20 -2
  256. data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/horizontal_stack_layout.js +283 -0
  257. data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/vertical_stack_layout.js +284 -0
  258. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +64 -65
  259. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +14 -14
  260. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +8 -8
  261. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +19 -19
  262. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +10 -25
  263. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +12 -6
  264. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +53 -34
  265. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +30 -24
  266. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +44 -40
  267. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +5 -2
  268. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +105 -176
  269. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane_statechart.js +50 -0
  270. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +4 -4
  271. data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/view_transition_protocol.js +48 -0
  272. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +225 -7
  273. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +54 -34
  274. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +86 -71
  275. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +35 -35
  276. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +2 -2
  277. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +2 -2
  278. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +283 -120
  279. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +36 -37
  280. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +653 -435
  281. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +49 -42
  282. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +422 -396
  283. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +5 -5
  284. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +10 -8
  285. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +37 -16
  286. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +5 -5
  287. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +1 -1
  288. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +15 -0
  289. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +21 -0
  290. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/cursor.js +28 -0
  291. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/platform.js +18 -0
  292. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +17 -17
  293. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_attr.js +9 -9
  294. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +43 -43
  295. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +4 -14
  296. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +18 -30
  297. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +78 -43
  298. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/theme.js +7 -7
  299. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +4 -3
  300. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +31 -15
  301. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +47 -2
  302. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/firstResponder.js +32 -31
  303. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/keyPane.js +23 -22
  304. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +3 -2
  305. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +17 -16
  306. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +626 -211
  307. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/border_frame_test.js +174 -0
  308. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build.js +22 -20
  309. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/childViewLayout_test.js +27 -0
  310. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -10
  311. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +5 -4
  312. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +10 -6
  313. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createLayer.js +17 -12
  314. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroy.js +60 -7
  315. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroyLayer.js +19 -26
  316. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +14 -13
  317. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/enabled_states_test.js +341 -0
  318. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/findLayerInParentLayer.js +9 -8
  319. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/init.js +26 -16
  320. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +28 -68
  321. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisible.js +35 -23
  322. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisibleInWindow.js +93 -78
  323. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +62 -64
  324. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +69 -18
  325. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +26 -21
  326. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +129 -57
  327. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +436 -238
  328. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/removeChild.js +38 -44
  329. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +14 -4
  330. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render_delegate_support.js +29 -20
  331. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/replaceAllChildren_test.js +229 -0
  332. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayer.js +33 -95
  333. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +87 -39
  334. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view_states_test.js +684 -0
  335. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +767 -625
  336. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +4 -23
  337. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +645 -77
  338. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +1 -1
  339. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +218 -19
  340. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +648 -321
  341. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +326 -534
  342. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +120 -126
  343. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/statechart.js +1526 -0
  344. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +18 -23
  345. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +12 -94
  346. data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +2 -2
  347. data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +19 -19
  348. data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +43 -27
  349. data/lib/frameworks/sproutcore/frameworks/core_tools/models/test.js +5 -5
  350. data/lib/frameworks/sproutcore/frameworks/core_tools/resources/icons.css +5 -0
  351. data/lib/frameworks/sproutcore/frameworks/core_tools/resources/sc-icon-sproutcore-16.png +0 -0
  352. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +41 -41
  353. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +1 -1
  354. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +90 -90
  355. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +1 -1
  356. data/lib/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +31 -31
  357. data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +3 -3
  358. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +6 -6
  359. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +1 -1
  360. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +1 -1
  361. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
  362. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -8
  363. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +74 -48
  364. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +11 -16
  365. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +187 -253
  366. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/cascade.js +5 -5
  367. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +14 -14
  368. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +49 -9
  369. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +2 -2
  370. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +236 -127
  371. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/instance_management.js +107 -0
  372. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +17 -0
  373. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +12 -11
  374. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecord.js +42 -17
  375. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +20 -15
  376. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +205 -92
  377. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +61 -25
  378. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +39 -9
  379. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +45 -1
  380. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/tests/system/datetime.js +88 -0
  381. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/coders/design.js +0 -0
  382. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/coders/object.js +0 -0
  383. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/controllers.js +3 -3
  384. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/design.js +2 -2
  385. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/designs.js +19 -19
  386. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/page_design.js +44 -44
  387. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/page_files.js +4 -4
  388. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/core.js +0 -0
  389. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_rule.js +0 -0
  390. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_style.js +6 -6
  391. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_style_sheet.js +37 -37
  392. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/button.js +0 -0
  393. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/label.js +0 -0
  394. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/object_designer.js +0 -0
  395. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/tab.js +0 -0
  396. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/text_field.js +0 -0
  397. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/view_designer.js +1 -1
  398. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/css/designer.css +0 -0
  399. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/design_page.js +0 -0
  400. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/high_light.css +0 -0
  401. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/controller.png +0 -0
  402. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-bg.png +0 -0
  403. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-bg.png +0 -0
  404. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-divider.png +0 -0
  405. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-sel-bg.png +0 -0
  406. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-sel-divider.png +0 -0
  407. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/main-bg.png +0 -0
  408. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/page.png +0 -0
  409. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/pane.png +0 -0
  410. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/view.png +0 -0
  411. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/selection_handles.css +0 -0
  412. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/binding.js +0 -0
  413. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/object.js +0 -0
  414. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/page.js +0 -0
  415. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/view.js +0 -0
  416. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/mixins/button.js +0 -0
  417. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/mixins/snap_lines.js +0 -0
  418. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/tests/coders/page.js +0 -0
  419. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/tests/designers/view_designer.js +0 -0
  420. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/designer_drop_target.js +36 -37
  421. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/drawing.js +1 -1
  422. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/high_light.js +17 -17
  423. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/page_item_view.js +0 -0
  424. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/selection_handles.js +14 -14
  425. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +1 -2
  426. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +51 -51
  427. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/mixins/split_child.js +63 -52
  428. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/mixins/split_thumb.js +64 -59
  429. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +113 -112
  430. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +182 -203
  431. data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +13 -13
  432. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +51 -29
  433. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +513 -307
  434. data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +69 -217
  435. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +31 -26
  436. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +15 -20
  437. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +2 -6
  438. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +6 -6
  439. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +25 -16
  440. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +6 -6
  441. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +29 -16
  442. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +1 -1
  443. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +19 -23
  444. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +14 -17
  445. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +24 -24
  446. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -4
  447. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +5 -5
  448. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/render_delegates/split.js +0 -0
  449. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/render_delegates/split_divider.js +0 -0
  450. data/lib/frameworks/sproutcore/frameworks/desktop/resources/modal.css +2 -0
  451. data/lib/frameworks/sproutcore/frameworks/desktop/resources/panel.css +1 -1
  452. data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +24 -98
  453. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +446 -442
  454. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +42 -21
  455. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +19 -3
  456. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +26 -28
  457. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +3 -2
  458. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/pane_page.js +11 -7
  459. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +5 -4
  460. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +32 -26
  461. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +27 -22
  462. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/methods.js +5 -4
  463. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/ui.js +0 -2
  464. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +11 -8
  465. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/displayProperties.js +5 -5
  466. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/keyEquivalents.js +9 -11
  467. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +23 -23
  468. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +15 -17
  469. data/lib/frameworks/sproutcore/frameworks/desktop/tests/{mixins → views/collection}/collection_fast_path.js +18 -12
  470. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +46 -53
  471. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +101 -47
  472. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +26 -26
  473. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +89 -69
  474. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selection.js +27 -25
  475. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +32 -35
  476. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +1 -0
  477. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +6 -11
  478. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +3 -5
  479. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +103 -8
  480. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +76 -38
  481. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +3 -5
  482. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +91 -3
  483. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/render.js +2 -17
  484. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +70 -38
  485. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js +17 -19
  486. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +10 -13
  487. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +37 -30
  488. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +18 -20
  489. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +115 -28
  490. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +0 -2
  491. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +37 -1
  492. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +194 -182
  493. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +2 -3
  494. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +18 -21
  495. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +5 -6
  496. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +5 -4
  497. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/children.js +15 -15
  498. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/dividers.js +0 -0
  499. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +341 -45
  500. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/split_child.js +0 -0
  501. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/split_thumb.js +0 -0
  502. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +6 -8
  503. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +49 -52
  504. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +23 -6
  505. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +2 -4
  506. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +4 -5
  507. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +47 -38
  508. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +24 -24
  509. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +887 -740
  510. data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +2 -2
  511. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +68 -55
  512. data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +3 -3
  513. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +8 -26
  514. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +189 -167
  515. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +55 -54
  516. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +8 -4
  517. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +145 -146
  518. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +21 -21
  519. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +2 -2
  520. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +66 -66
  521. data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +40 -44
  522. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +203 -200
  523. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +11 -12
  524. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +6 -13
  525. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +87 -112
  526. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +192 -179
  527. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +23 -23
  528. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +64 -64
  529. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +56 -56
  530. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +784 -714
  531. data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +21 -39
  532. data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +45 -41
  533. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
  534. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +4 -10
  535. data/lib/frameworks/sproutcore/frameworks/desktop/views/thumb.js +9 -47
  536. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +40 -16
  537. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -1
  538. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +62 -50
  539. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +0 -9
  540. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +45 -45
  541. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +16 -16
  542. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +46 -6
  543. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +16 -2
  544. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/desktop_scroller.js +12 -12
  545. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/ui.js +38 -40
  546. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +8 -8
  547. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +20 -20
  548. data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +16 -16
  549. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +26 -14
  550. data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +43 -43
  551. data/lib/frameworks/sproutcore/frameworks/foundation/debug/test-image.png +0 -0
  552. data/lib/frameworks/sproutcore/frameworks/foundation/delegates/inline_text_field.js +11 -11
  553. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +63 -41
  554. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +1 -1
  555. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +60 -61
  556. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +72 -72
  557. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +142 -142
  558. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gesturable.js +1 -1
  559. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
  560. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +10 -8
  561. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +36 -29
  562. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +4 -4
  563. data/lib/frameworks/sproutcore/frameworks/foundation/protocols/swap_transition_protocol.js +150 -0
  564. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +54 -29
  565. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +23 -18
  566. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +12 -11
  567. data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +21 -20
  568. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-128.png +0 -0
  569. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-256.png +0 -0
  570. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-32.png +0 -0
  571. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-48.png +0 -0
  572. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-512.png +0 -0
  573. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-64.png +0 -0
  574. data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +5 -0
  575. data/lib/frameworks/sproutcore/frameworks/foundation/system/app_cache.js +412 -0
  576. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -3
  577. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +11 -5
  578. data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +21 -21
  579. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +8 -3
  580. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +33 -8
  581. data/lib/frameworks/sproutcore/frameworks/foundation/tests/delegates/inline_text_field/inline_text_field.js +2 -1
  582. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_display.js +9 -3
  583. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +5 -4
  584. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +49 -4
  585. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +29 -21
  586. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +3 -5
  587. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/validatable/ui.js +8 -10
  588. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/app_cache_test.js +81 -0
  589. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/image_queue.js +2 -2
  590. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +0 -3
  591. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +40 -1
  592. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/transition_test.js +143 -0
  593. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +5 -7
  594. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +187 -84
  595. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +6 -41
  596. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +51 -7
  597. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +11 -16
  598. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_bounce_transition.js +80 -0
  599. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_smooth_transition.js +39 -0
  600. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_spring_transition.js +77 -0
  601. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/bounce_transition.js +211 -0
  602. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/fade_transition.js +57 -0
  603. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/pop_transition.js +82 -0
  604. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/scale_transition.js +54 -0
  605. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/slide_transition.js +140 -0
  606. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/spring_transition.js +203 -0
  607. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_dissolve_transition.js +67 -0
  608. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_fade_color_transition.js +81 -0
  609. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_move_in_transition.js +104 -0
  610. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_push_transition.js +181 -0
  611. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_reveal_transition.js +90 -0
  612. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +2 -2
  613. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +483 -95
  614. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +65 -65
  615. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +111 -100
  616. data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +30 -222
  617. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +38 -24
  618. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +74 -62
  619. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-1.8.3-patched.js +9485 -0
  620. data/lib/frameworks/sproutcore/frameworks/media/media_capabilities.js +4 -4
  621. data/lib/frameworks/sproutcore/frameworks/media/render_delegates/media_slider.js +20 -20
  622. data/lib/frameworks/sproutcore/frameworks/media/resources/video.css +18 -17
  623. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +19 -19
  624. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +10 -11
  625. data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +7 -8
  626. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +24 -24
  627. data/lib/frameworks/sproutcore/frameworks/qunit/test/test.js +2 -2
  628. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +32 -21
  629. data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +72 -53
  630. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +164 -156
  631. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +20 -20
  632. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +145 -140
  633. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +1 -1
  634. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +2 -2
  635. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +393 -370
  636. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +3 -3
  637. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1045 -999
  638. data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +41 -36
  639. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +10 -4
  640. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +11 -1
  641. data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +7 -7
  642. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +275 -205
  643. data/lib/frameworks/sproutcore/frameworks/runtime/system/function.js +27 -27
  644. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +229 -193
  645. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +24 -24
  646. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +186 -188
  647. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
  648. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +138 -65
  649. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +11 -10
  650. data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +8 -4
  651. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +4 -0
  652. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +112 -23
  653. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +71 -18
  654. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +97 -57
  655. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +22 -22
  656. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/infinite.js +184 -0
  657. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +63 -1
  658. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +73 -36
  659. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +100 -25
  660. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +7 -0
  661. data/lib/frameworks/sproutcore/frameworks/statechart/debug/sequence_matcher.js +1 -1
  662. data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +2 -2
  663. data/lib/frameworks/sproutcore/frameworks/statechart/system/history_state.js +32 -32
  664. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +449 -422
  665. data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +19 -19
  666. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +612 -562
  667. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +115 -62
  668. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +145 -64
  669. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/respond_to_event.js +17 -1
  670. data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +30 -30
  671. data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +34 -34
  672. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +1 -1
  673. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/collection.js +2 -2
  674. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/view.js +3 -5
  675. data/lib/frameworks/sproutcore/frameworks/template_view/tests/panes/template.js +2 -0
  676. data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/core.js +2 -2
  677. data/lib/frameworks/sproutcore/frameworks/template_view/views/bindable_span.js +7 -7
  678. data/lib/frameworks/sproutcore/frameworks/template_view/views/template.js +4 -4
  679. data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +15 -21
  680. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +4 -4
  681. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +35 -35
  682. data/lib/frameworks/sproutcore/scripts/run_sc_server_master.sh +34 -0
  683. data/lib/frameworks/sproutcore/tests/phantomjs_runner.phantomjs +606 -0
  684. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/PanelPane.opacity +0 -0
  685. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/Pointers.opacity +0 -0
  686. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button@2x.png +0 -0
  687. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button@2x.png +0 -0
  688. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button@2x.png +0 -0
  689. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button@2x.png +0 -0
  690. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +3 -4
  691. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +18 -0
  692. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
  693. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel@2x.png +0 -0
  694. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel.png +0 -0
  695. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel@2x.png +0 -0
  696. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.css +34 -14
  697. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers.png +0 -0
  698. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers@2x.png +0 -0
  699. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +5 -4
  700. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +7 -2
  701. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +5 -4
  702. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +6 -3
  703. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +7 -5
  704. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +7 -7
  705. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +37 -37
  706. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +12 -12
  707. data/lib/sproutcore/helpers/static_helper.rb +35 -27
  708. data/sproutcore.gemspec +1 -0
  709. metadata +529 -451
  710. data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-logo.png +0 -0
  711. data/lib/frameworks/sproutcore/apps/showcase/views/button_views.js +0 -55
  712. data/lib/frameworks/sproutcore/apps/showcase/views/container_views.js +0 -29
  713. data/lib/frameworks/sproutcore/apps/showcase/views/grid_views.js +0 -28
  714. data/lib/frameworks/sproutcore/apps/showcase/views/image_button_views.js +0 -22
  715. data/lib/frameworks/sproutcore/apps/showcase/views/image_views.js +0 -51
  716. data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +0 -26
  717. data/lib/frameworks/sproutcore/apps/tests/states/ready.js +0 -56
  718. data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +0 -41
  719. data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +0 -48
  720. data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +0 -41
  721. data/lib/frameworks/sproutcore/apps/tests/states/ready_loading.js +0 -44
  722. data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +0 -31
  723. data/lib/frameworks/sproutcore/apps/tests/states/start.js +0 -39
  724. data/lib/frameworks/sproutcore/apps/welcome/tests/controllers/targets.js +0 -15
  725. data/lib/frameworks/sproutcore/frameworks/animation/Buildfile +0 -3
  726. data/lib/frameworks/sproutcore/frameworks/animation/LICENSE +0 -25
  727. data/lib/frameworks/sproutcore/frameworks/animation/README.md +0 -79
  728. data/lib/frameworks/sproutcore/frameworks/animation/core.js +0 -1208
  729. data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +0 -152
  730. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/parentViewDidChange.js +0 -67
  731. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +0 -203
  732. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +0 -213
  733. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +0 -163
  734. data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +0 -97
  735. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +0 -312
  736. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +0 -961
  737. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split_divider.js +0 -40
  738. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +0 -27
  739. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-logo.png +0 -0
  740. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore.png +0 -0
  741. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +0 -394
  742. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +0 -133
  743. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +0 -18
  744. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +0 -8981
  745. data/lib/frameworks/sproutcore/frameworks/jquery/tests/set_class.js +0 -40
  746. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
@@ -6,143 +6,81 @@
6
6
 
7
7
  /*global module test equals context ok same */
8
8
 
9
- // NOTE: This file tests both updateLayer() and the related methods that
9
+ // NOTE: This file tests both updateLayer() and the related methods that
10
10
  // will trigger it.
11
11
 
12
12
  // ..........................................................
13
13
  // TEST: updateLayer()
14
- //
14
+ //
15
15
  module("SC.View#updateLayer");
16
16
 
17
- test("invokes renderLayerSettings() and then updates layer element", function() {
17
+ test("invokes applyAttributesToContext() and then updates layer element", function() {
18
18
  var layer = document.createElement('div');
19
19
 
20
20
  var times = 0;
21
21
  var view = SC.View.create({
22
- _renderLayerSettings: function() {
22
+ applyAttributesToContext: function() {
23
23
  times++;
24
24
  this.$().addClass('did-update-' + times);
25
25
  }
26
26
  });
27
27
  view.createLayer();
28
- view.updateLayer();
29
- ok(view.$().attr('class').indexOf('did-update-2')>=0, 'has class name added by prepareContext()');
28
+ view.updateLayer(true);
29
+ ok(view.$().attr('class').indexOf('did-update-2')>=0, 'has class name added by render()');
30
+
31
+ // Clean up.
32
+ layer = null;
33
+ view.destroy();
30
34
  });
31
35
 
32
36
  // ..........................................................
33
37
  // TEST: updateLayerIfNeeded()
34
- //
38
+ //
35
39
  var view, callCount ;
36
40
  module("SC.View#updateLayerIfNeeded", {
37
41
  setup: function() {
38
- // setup a fake view class so that updateLayerIfNeeded() will call
39
- // updateLayer() if needed. updateLayer() is faked to isolate test
40
42
  view = SC.View.create({
41
- isVisibleInWindow: YES,
42
- updateLayer: function() { callCount++; }
43
+ isVisible: false,
44
+ _executeDoUpdateContent: function() {
45
+ callCount++;
46
+ }
43
47
  });
44
48
  callCount = 0 ;
45
-
49
+
46
50
  view.createLayer();
47
- view.set("layerNeedsUpdate", YES);
51
+ view._doAttach(document.body);
52
+ },
53
+
54
+ teardown: function () {
55
+ // Clean up.
56
+ view.destroy();
57
+ view = null;
48
58
  }
49
-
50
- });
51
59
 
52
- test("does not call updateLayer if layerNeedsUpdate is NO", function() {
53
- view.set('layerNeedsUpdate', NO);
54
- view.updateLayerIfNeeded();
55
- equals(callCount, 0, 'updateLayer did NOT run');
56
60
  });
57
61
 
58
- test("does not call updateLayer if isVisibleInWindow is NO", function() {
59
- view.set('isVisibleInWindow', NO);
62
+ test("does not call _executeDoUpdateContent if not in shown state", function() {
60
63
  view.updateLayerIfNeeded();
61
- equals(callCount, 0, 'updateLayer did NOT run');
64
+ equals(callCount, 0, '_executeDoUpdateContent did NOT run');
62
65
  });
63
66
 
64
- test("does call updateLayer() if isVisible & layerNeedsUpdate", function() {
67
+ test("does call _executeDoUpdateContent if in shown state", function() {
68
+ view.set('isVisible', true);
65
69
  equals(view.get('isVisibleInWindow'), YES, 'precond - isVisibleInWindow');
66
- equals(view.get('layerNeedsUpdate'), YES, 'precond - layerNeedsUpdate');
67
-
68
- view.updateLayerIfNeeded();
69
- ok(callCount > 0, 'updateLayer() did run');
70
- });
71
70
 
72
- test("resets layerNeedsUpdate to NO if called", function() {
73
- equals(view.get('layerNeedsUpdate'), YES, 'precond - layerNeedsUpdate');
74
71
  view.updateLayerIfNeeded();
75
- equals(view.get('layerNeedsUpdate'), NO, 'layerNeedsUpdate reset to NO');
72
+ ok(callCount > 0, '_executeDoUpdateContent() did run');
76
73
  });
77
74
 
78
75
  test("returns receiver", function() {
79
76
  equals(view.updateLayerIfNeeded(), view, 'returns receiver');
80
77
  });
81
78
 
82
- test("only runs updateLayer() once if called multiple times (since layerNeedsUpdate is set to NO)", function() {
79
+ test("only runs _executeDoUpdateContent once if called multiple times (since layerNeedsUpdate is set to NO)", function() {
83
80
  callCount = 0;
84
- view.updateLayerIfNeeded().updateLayerIfNeeded().updateLayerIfNeeded();
85
- equals(callCount, 1, 'updateLayer() called only once');
86
- });
87
-
88
- // ..........................................................
89
- // TEST: layerNeedsUpdate auto-trigger
90
- //
91
- module("SC.View#layerNeedsUpdate auto-triggers", {
92
- setup: function() {
93
- // use fake method to isolate call...
94
- view = SC.View.create({
95
- updateLayerIfNeeded: function() { callCount++; }
96
- });
97
- callCount = 0;
98
- }
99
- });
100
-
101
- test("setting layerNeedsUpdate calls updateLayerIfNeeded at end of runloop", function() {
102
- SC.RunLoop.begin();
103
- view.set('layerNeedsUpdate', YES);
104
- SC.RunLoop.end();
105
-
106
- equals(callCount, 1, 'updateLayerIfNeeded did run');
107
- });
108
-
109
- test("setting & resetting only triggers updateLayerIfNeeded once per runloop", function() {
110
- SC.RunLoop.begin();
111
- view.set('layerNeedsUpdate', YES)
112
- .set('layerNeedsUpdate', NO)
113
- .set('layerNeedsUpdate', YES);
114
- SC.RunLoop.end();
115
-
116
- equals(callCount, 1, 'updateLayerIfNeeded did run');
117
- });
118
-
119
- // ..........................................................
120
- // INTEGRATION SCENARIOS
121
- //
122
-
123
- module("SC.View#updateLayer - integration");
124
-
125
- test("layerNeedsUpdate actually triggers updateLayer", function() {
126
- var callCount = 0 ;
127
- var layer = document.createElement('div');
128
- var view = SC.View.create({
129
- isVisibleInWindow: YES,
130
- updateLayer: function() { callCount++; }
81
+ view.set('isVisible', true);
82
+ SC.run(function () {
83
+ view.displayDidChange().displayDidChange().displayDidChange();
131
84
  });
132
- view.createLayer();
133
-
134
- SC.RunLoop.begin();
135
- view.set('layerNeedsUpdate', YES);
136
- SC.RunLoop.end();
137
-
138
- equals(callCount, 1, 'updateLayer did run b/c layerNeedsUpdate is YES');
139
- callCount = 0 ;
140
-
141
- SC.RunLoop.begin();
142
- view.set('layerNeedsUpdate', YES);
143
- view.set('layerNeedsUpdate', NO);
144
- SC.RunLoop.end();
145
-
146
- equals(callCount, 0, 'updateLayer did NOT run b/c layerNeedsUpdate is NO');
85
+ equals(callCount, 1, '_executeDoUpdateContent() called only once');
147
86
  });
148
-
@@ -8,25 +8,25 @@
8
8
 
9
9
  // ..........................................................
10
10
  // viewDidResize()
11
- //
11
+ //
12
12
  module("SC.View#viewDidResize");
13
13
 
14
14
  test("invokes parentViewDidResize on all child views", function() {
15
15
  var callCount = 0 ;
16
- var ChildView = SC.View.extend({
17
- parentViewDidResize: function() { callCount++; }
16
+ var ChildView = SC.View.extend({
17
+ parentViewDidResize: function() { callCount++; }
18
18
  });
19
-
19
+
20
20
  var view = SC.View.create({
21
- childViews: [ChildView, ChildView, ChildView]
21
+ childViews: [ChildView, ChildView, ChildView]
22
22
  });
23
-
23
+
24
24
  // now test...
25
25
  SC.run(function() { view.viewDidResize(); });
26
26
  equals(callCount, 3, 'should invoke parentViewDidResize() on all children');
27
27
  });
28
28
 
29
- test("triggers whenever layout property is changed", function() {
29
+ test("parentViewDidResize should only be called when the parent's layout property changes in a manner that may affect child views.", function() {
30
30
  var callCount = 0 ;
31
31
  var view = SC.View.create({
32
32
  // use the callback below to detect when viewDidResize is icalled.
@@ -34,9 +34,53 @@ test("triggers whenever layout property is changed", function() {
34
34
  parentViewDidResize: function() { callCount++; }
35
35
  })]
36
36
  });
37
-
38
- SC.run(function() { view.set('layout', { top: 10, left: 20, height: 50, width: 40 }); });
39
- equals(callCount, 1, 'viewDidResize should invoke once');
37
+
38
+ SC.run(function () { view.set('layout', { top: 10, left: 20, height: 50, width: 40 }); });
39
+ equals(callCount, 1, 'parentViewDidResize should invoke once');
40
+
41
+ SC.run(function () { view.adjust('top', 0); });
42
+ equals(callCount, 1, 'parentViewDidResize should invoke once');
43
+
44
+ SC.run(function () { view.adjust('height', 60); });
45
+ equals(callCount, 2, 'parentViewDidResize should invoke twice');
46
+
47
+ // This is tricky, if the height increases, but the same size border is added, the effective height/width is unchanged.
48
+ SC.run(function () { view.adjust({'height': 70, 'borderTop': 10 }); });
49
+ equals(callCount, 2, 'parentViewDidResize should invoke twice');
50
+ });
51
+
52
+ test("The view's frame should only notify changes when its layout changes if the effective size or position actually change.", function () {
53
+ var view2 = SC.View.create({
54
+ frameCallCount: 0,
55
+ frameDidChange: function() {
56
+ this.frameCallCount++;
57
+ }.observes('frame'),
58
+ viewDidResize: CoreTest.stub('viewDidResize', SC.View.prototype.viewDidResize)
59
+ }),
60
+ view1 = SC.View.create({
61
+ childViews: [view2],
62
+ layout: { width: 200, height: 200 }
63
+ });
64
+
65
+ SC.run(function () { view2.set('layout', { height: 50, width: 50 }); });
66
+ equals(view2.get('frameCallCount'), 1, 'frame should have notified changing once.');
67
+
68
+ SC.run(function () { view2.adjust('top', 0); });
69
+ equals(view2.get('frameCallCount'), 2, 'frame should have notified changing once.');
70
+
71
+ SC.run(function () { view2.adjust('height', 100); });
72
+ equals(view2.get('frameCallCount'), 3, 'frame should have notified changing twice.');
73
+
74
+ // Tricky.
75
+ SC.run(function () { view2.adjust({ 'height': 110, 'borderTop': 10, 'top': -10 }); });
76
+ equals(view2.get('frameCallCount'), 4, 'frame should have notified changing twice.');
77
+
78
+ SC.run(function () { view2.adjust('width', null); });
79
+ equals(view2.get('frameCallCount'), 5, 'frame should have notified changing thrice.');
80
+
81
+ // Tricky.
82
+ SC.run(function () { view2.adjust('width', 200); });
83
+ equals(view2.get('frameCallCount'), 6, 'frame should have notified changing thrice.');
40
84
  });
41
85
 
42
86
  test("making sure that the frame value is correct inside viewDidResize()", function() {
@@ -45,14 +89,14 @@ test("making sure that the frame value is correct inside viewDidResize()", funct
45
89
  // the method itself, we'll cache a global reference to the then-current
46
90
  // value and test it later.
47
91
  var cachedFrame;
48
-
92
+
49
93
  var view = SC.View.create({
50
-
94
+
51
95
  layout: { left:0, top:0, width:400, height:400 },
52
-
96
+
53
97
  viewDidResize: function() {
54
98
  sc_super();
55
-
99
+
56
100
  // Set a global reference to my frame at this point so that we can
57
101
  // test for the correct value later.
58
102
  cachedFrame = this.get('frame');
@@ -65,7 +109,7 @@ test("making sure that the frame value is correct inside viewDidResize()", funct
65
109
  // after the resize, we can verify that the cache invalidation logic is
66
110
  // working correctly.
67
111
  var originalFrame = view.get('frame');
68
-
112
+
69
113
  SC.RunLoop.begin();
70
114
  view.adjust('height', 314);
71
115
  SC.RunLoop.end();
@@ -79,86 +123,90 @@ test("making sure that the frame value is correct inside viewDidResize()", funct
79
123
 
80
124
  // ..........................................................
81
125
  // parentViewDidResize()
82
- //
126
+ //
83
127
  module("SC.View#parentViewDidResize");
84
128
 
85
- test("Optimized notify on frame and optimized cascade call to child views.", function() {
129
+ test("When parentViewDidResize is called on a view, it should only notify on frame and cascade the call to child views if it will be affected by the parent's resize.", function() {
86
130
  var view = SC.View.create({
87
- // instrument...
88
- frameCallCount: 0,
89
- frameDidChange: function() {
90
- this.frameCallCount++;
91
- }.observes('frame'),
92
- viewDidResize: CoreTest.stub('viewDidResize', SC.View.prototype.viewDidResize)
93
- });
131
+ // instrument...
132
+ frameCallCount: 0,
133
+ frameDidChange: function() {
134
+ this.frameCallCount++;
135
+ }.observes('frame'),
136
+ viewDidResize: CoreTest.stub('viewDidResize', SC.View.prototype.viewDidResize)
137
+ }),
138
+ parentView = SC.View.create({
139
+ childViews: [view],
140
+ layout: { height: 100, width: 100 }
141
+ });
94
142
 
95
143
  // try with fixed layout
96
144
  view.set('layout', { top: 10, left: 10, height: 10, width: 10 });
97
145
  view.viewDidResize.reset(); view.frameCallCount = 0;
98
- view.parentViewDidResize();
146
+ parentView.adjust({ width: 90, height: 90 });
99
147
  view.viewDidResize.expect(0);
100
148
  equals(view.frameCallCount, 0, 'should not notify frame changed when isFixedPosition: %@ and isFixedSize: %@'.fmt(view.get('isFixedPosition'), view.get('isFixedSize')));
101
149
 
102
150
  // try with flexible height
103
151
  view.set('layout', { top: 10, left: 10, bottom: 10, width: 10 });
104
152
  view.viewDidResize.reset(); view.frameCallCount = 0;
105
- view.parentViewDidResize();
153
+ parentView.adjust({ width: 80, height: 80 });
106
154
  view.viewDidResize.expect(1);
107
155
  equals(view.frameCallCount, 1, 'should notify frame changed when isFixedPosition: %@ and isFixedSize: %@'.fmt(view.get('isFixedPosition'), view.get('isFixedSize')));
108
156
 
109
157
  // try with flexible width
110
158
  view.set('layout', { top: 10, left: 10, height: 10, right: 10 });
111
159
  view.viewDidResize.reset(); view.frameCallCount = 0;
112
- view.parentViewDidResize();
160
+ parentView.adjust({ width: 70, height: 70 });
113
161
  view.viewDidResize.expect(1);
114
162
  equals(view.frameCallCount, 1, 'should notify frame changed when isFixedPosition: %@ and isFixedSize: %@'.fmt(view.get('isFixedPosition'), view.get('isFixedSize')));
115
163
 
116
164
  // try with right align
117
165
  view.set('layout', { top: 10, right: 10, height: 10, width: 10 });
118
166
  view.viewDidResize.reset(); view.frameCallCount = 0;
119
- view.parentViewDidResize();
167
+ parentView.adjust({ width: 60, height: 60 });
120
168
  view.viewDidResize.expect(0);
121
169
  equals(view.frameCallCount, 1, 'should notify frame changed when isFixedPosition: %@ and isFixedSize: %@'.fmt(view.get('isFixedPosition'), view.get('isFixedSize')));
122
170
 
123
171
  // try with bottom align
124
172
  view.set('layout', { top: 10, bottom: 10, height: 10, width: 10 });
125
173
  view.viewDidResize.reset(); view.frameCallCount = 0;
126
- view.parentViewDidResize();
174
+ parentView.adjust({ width: 50, height: 50 });
127
175
  view.viewDidResize.expect(0);
128
176
  equals(view.frameCallCount, 1, 'should notify frame changed when isFixedPosition: %@ and isFixedSize: %@'.fmt(view.get('isFixedPosition'), view.get('isFixedSize')));
129
177
 
130
178
  // try with center horizontal align
131
179
  view.set('layout', { centerX: 10, top: 10, height: 10, width: 10 });
132
180
  view.viewDidResize.reset(); view.frameCallCount = 0;
133
- view.parentViewDidResize();
181
+ parentView.adjust({ width: 40, height: 40 });
134
182
  view.viewDidResize.expect(0);
135
183
  equals(view.frameCallCount, 1, 'should notify frame changed when isFixedPosition: %@ and isFixedSize: %@'.fmt(view.get('isFixedPosition'), view.get('isFixedSize')));
136
184
 
137
185
  // try with center vertical align
138
186
  view.set('layout', { left: 10, centerY: 10, height: 10, width: 10 });
139
187
  view.viewDidResize.reset(); view.frameCallCount = 0;
140
- view.parentViewDidResize();
188
+ parentView.adjust({ width: 30, height: 30 });
141
189
  view.viewDidResize.expect(0);
142
190
  equals(view.frameCallCount, 1, 'should notify frame changed when isFixedPosition: %@ and isFixedSize: %@'.fmt(view.get('isFixedPosition'), view.get('isFixedSize')));
143
191
  });
144
192
 
145
193
  // ..........................................................
146
194
  // beginLiveResize()
147
- //
195
+ //
148
196
  module("SC.View#beginLiveResize");
149
197
 
150
198
  test("invokes willBeginLiveResize on receiver and any child views that implement it", function() {
151
- var callCount = 0;
199
+ var callCount = 0;
152
200
  var ChildView = SC.View.extend({
153
201
  willBeginLiveResize: function() { callCount++ ;}
154
202
  });
155
-
203
+
156
204
  var view = ChildView.create({ // <-- has callback
157
205
  childViews: [SC.View.extend({ // <-- this does not implement callback
158
206
  childViews: [ChildView] // <-- has callback
159
207
  })]
160
208
  });
161
-
209
+
162
210
  callCount = 0 ;
163
211
  view.beginLiveResize();
164
212
  equals(callCount, 2, 'should invoke willBeginLiveResize when implemented');
@@ -171,21 +219,21 @@ test("returns receiver", function() {
171
219
 
172
220
  // ..........................................................
173
221
  // endLiveResize()
174
- //
222
+ //
175
223
  module("SC.View#endLiveResize");
176
224
 
177
225
  test("invokes didEndLiveResize on receiver and any child views that implement it", function() {
178
- var callCount = 0;
226
+ var callCount = 0;
179
227
  var ChildView = SC.View.extend({
180
228
  didEndLiveResize: function() { callCount++; }
181
229
  });
182
-
230
+
183
231
  var view = ChildView.create({ // <-- has callback
184
232
  childViews: [SC.View.extend({ // <-- this does not implement callback
185
233
  childViews: [ChildView] // <-- has callback
186
234
  })]
187
235
  });
188
-
236
+
189
237
  callCount = 0 ;
190
238
  view.endLiveResize();
191
239
  equals(callCount, 2, 'should invoke didEndLiveResize when implemented');
@@ -0,0 +1,684 @@
1
+ // ==========================================================================
2
+ // Project: SproutCore - JavaScript Application Framework
3
+ // Copyright: ©2006-2011 Strobe Inc. and contributors.
4
+ // ©2008-2011 Apple Inc. All rights reserved.
5
+ // License: Licensed under MIT license (see license.js)
6
+ // ==========================================================================
7
+
8
+ /*global module, test, equals,ok */
9
+
10
+ var parentView;
11
+
12
+ /** Test the SC.View states. */
13
+ module("SC.View States", {
14
+
15
+ setup: function () {
16
+ parentView = SC.View.create();
17
+ },
18
+
19
+ teardown: function () {
20
+ parentView.destroy();
21
+ parentView = null;
22
+ }
23
+
24
+ });
25
+
26
+ /**
27
+ Test the state, in particular supported actions.
28
+ */
29
+ test("Test unrendered state.", function () {
30
+ var handled,
31
+ view = SC.View.create();
32
+
33
+ // Test expected state of the view.
34
+ equals(view.viewState, SC.CoreView.UNRENDERED, "A newly created view should be in the state");
35
+ ok(!view.get('isAttached'), "isAttached should be false");
36
+ ok(!view.get('_isRendered'), "_isRendered should be false");
37
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
38
+
39
+ // _doAttach(document.body)
40
+ // _doDestroyLayer()
41
+ // _doDetach()
42
+ // _doHide()
43
+ // _doRender()
44
+ // _doShow()
45
+ // _doUpdateContent()
46
+ // _doUpdateLayout()
47
+
48
+ // UNHANDLED ACTIONS
49
+ handled = view._doAttach(document.body);
50
+ ok(!handled, "Calling _doAttach(document.body) should not be handled");
51
+ equals(view.viewState, SC.CoreView.UNRENDERED, "Calling _doAttach(document.body) doesn't change state");
52
+
53
+ handled = view._doDestroyLayer();
54
+ ok(!handled, "Calling _doDestroyLayer() should not be handled");
55
+ equals(view.viewState, SC.CoreView.UNRENDERED, "Calling _doDestroyLayer() doesn't change state");
56
+
57
+ handled = view._doDetach();
58
+ ok(!handled, "Calling _doDetach() should not be handled");
59
+ equals(view.viewState, SC.CoreView.UNRENDERED, "Calling _doDetach() doesn't change state");
60
+
61
+ handled = view._doHide();
62
+ ok(!handled, "Calling _doHide() should not be handled");
63
+ equals(view.viewState, SC.CoreView.UNRENDERED, "Calling _doHide() doesn't change state");
64
+
65
+ handled = view._doUpdateContent();
66
+ ok(!handled, "Calling _doUpdateContent() should not be handled");
67
+ equals(view.viewState, SC.CoreView.UNRENDERED, "Calling _doUpdateContent() doesn't change state");
68
+
69
+ handled = view._doUpdateLayout();
70
+ ok(!handled, "Calling _doUpdateLayout() should not be handled");
71
+ equals(view.viewState, SC.CoreView.UNRENDERED, "Calling _doUpdateLayout() doesn't change state");
72
+
73
+
74
+ // HANDLED ACTIONS
75
+
76
+ handled = view._doShow();
77
+ ok(handled, "Calling _doShow() should be handled");
78
+ equals(view.viewState, SC.CoreView.UNRENDERED, "Calling _doShow() doesn't change state");
79
+
80
+ handled = view._doRender();
81
+ ok(handled, "Calling _doRender() should be handled");
82
+ equals(view.viewState, SC.CoreView.UNATTACHED, "Calling _doRender() changes state");
83
+
84
+
85
+ // CLEAN UP
86
+ view.destroy();
87
+ });
88
+
89
+ /**
90
+ Test the state, in particular supported actions.
91
+ */
92
+ test("Test unattached state.", function () {
93
+ var handled,
94
+ view = SC.View.create();
95
+
96
+ // Test expected state of the view.
97
+ view._doRender();
98
+ equals(view.viewState, SC.CoreView.UNATTACHED, "A newly created view that is rendered should be in the state");
99
+ ok(!view.get('isAttached'), "isAttached should be false");
100
+ ok(view.get('_isRendered'), "_isRendered should be true");
101
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
102
+
103
+ // _doAttach(document.body)
104
+ // _doDestroyLayer()
105
+ // _doDetach()
106
+ // _doHide()
107
+ // _doRender()
108
+ // _doShow()
109
+ // _doUpdateContent()
110
+ // _doUpdateLayout()
111
+
112
+ // UNHANDLED ACTIONS
113
+ handled = view._doDetach();
114
+ ok(!handled, "Calling _doDetach() should not be handled");
115
+ equals(view.viewState, SC.CoreView.UNATTACHED, "Calling _doDetach() doesn't change state");
116
+
117
+ handled = view._doRender();
118
+ ok(!handled, "Calling _doRender() should not be handled");
119
+ equals(view.viewState, SC.CoreView.UNATTACHED, "Calling _doRender() doesn't change state");
120
+
121
+
122
+ // HANDLED ACTIONS
123
+
124
+ handled = view._doHide();
125
+ ok(handled, "Calling _doHide() should be handled");
126
+ equals(view.viewState, SC.CoreView.UNATTACHED, "Calling _doHide() doesn't change state");
127
+
128
+ handled = view._doShow();
129
+ ok(handled, "Calling _doShow() should be handled");
130
+ equals(view.viewState, SC.CoreView.UNATTACHED, "Calling _doShow() doesn't change state");
131
+
132
+ handled = view._doAttach(document.body);
133
+ ok(handled, "Calling _doAttach(document.body) should be handled");
134
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doAttach(document.body) changes state");
135
+
136
+ // Reset
137
+ view.destroy();
138
+ view = SC.View.create();
139
+ view._doRender();
140
+
141
+ handled = view._doDestroyLayer();
142
+ ok(handled, "Calling _doDestroyLayer() should be handled");
143
+ equals(view.viewState, SC.CoreView.UNRENDERED, "Calling _doDestroyLayer() changes state");
144
+
145
+ // Reset
146
+ view.destroy();
147
+ view = SC.View.create();
148
+ view._doRender();
149
+
150
+ handled = view._doUpdateContent();
151
+ ok(handled, "Calling _doUpdateContent() should be handled");
152
+ equals(view.viewState, SC.CoreView.UNATTACHED, "Calling _doUpdateContent() doesn't change state");
153
+
154
+ handled = view._doUpdateLayout();
155
+ ok(handled, "Calling _doUpdateLayout() should be handled");
156
+ equals(view.viewState, SC.CoreView.UNATTACHED, "Calling _doUpdateLayout() doesn't change state");
157
+
158
+ // Reset
159
+ view.destroy();
160
+ view = SC.View.create();
161
+ view._doRender();
162
+
163
+ handled = view._doAttach(document.body);
164
+ ok(handled, "Calling _doAttach(document.body) with unrendered orphan parentView should be handled");
165
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doAttach(document.body) changes state");
166
+
167
+
168
+ // CLEAN UP
169
+ view.destroy();
170
+ });
171
+
172
+
173
+ /**
174
+ Test the state, in particular supported actions.
175
+ */
176
+ test("Test attached_shown state.", function () {
177
+ var handled,
178
+ view = SC.View.create();
179
+
180
+ // Test expected state of the view.
181
+ view._doRender();
182
+ view._doAttach(document.body);
183
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "A newly created orphan view that is rendered and attached should be in the state");
184
+ ok(view.get('isAttached'), "isAttached should be true");
185
+ ok(view.get('_isRendered'), "_isRendered should be true");
186
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
187
+
188
+ // _doAttach(document.body)
189
+ // _doDestroyLayer()
190
+ // _doDetach()
191
+ // _doHide()
192
+ // _doRender()
193
+ // _doShow()
194
+ // _doUpdateContent()
195
+ // _doUpdateLayout()
196
+
197
+
198
+ // UNHANDLED ACTIONS
199
+ handled = view._doAttach(document.body);
200
+ ok(!handled, "Calling _doAttach(document.body) should not be handled");
201
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doAttach(document.body) doesn't change state");
202
+
203
+ handled = view._doDestroyLayer();
204
+ ok(!handled, "Calling _doDestroyLayer() should not be handled");
205
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doDestroyLayer() doesn't change state");
206
+
207
+ handled = view._doRender();
208
+ ok(!handled, "Calling _doRender() should not be handled");
209
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doRender() doesn't change state");
210
+
211
+ handled = view._doShow();
212
+ ok(!handled, "Calling _doShow() should not be handled");
213
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doShow() doesn't change state");
214
+
215
+
216
+ // HANDLED ACTIONS
217
+
218
+ handled = view._doUpdateContent();
219
+ ok(handled, "Calling _doUpdateContent() should be handled");
220
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doUpdateContent() doesn't change state");
221
+
222
+ handled = view._doUpdateLayout();
223
+ ok(handled, "Calling _doUpdateLayout() should be handled");
224
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doUpdateLayout() doesn't change state");
225
+
226
+ handled = view._doDetach();
227
+ ok(handled, "Calling _doDetach() should be handled");
228
+ equals(view.viewState, SC.CoreView.UNATTACHED, "Calling _doDetach() changes state");
229
+
230
+ // Reset
231
+ view.destroy();
232
+ view = SC.View.create();
233
+ view._doRender();
234
+ view._doAttach(document.body);
235
+
236
+ handled = view._doHide();
237
+ ok(handled, "Calling _doHide() should be handled");
238
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN, "Calling _doHide() changes state");
239
+
240
+
241
+ // CLEAN UP
242
+ view.destroy();
243
+ });
244
+
245
+
246
+ test("Calling destroy layer, clears the layer from all child views.", function () {
247
+ var child = SC.View.create(),
248
+ view = SC.View.create({ childViews: [child] });
249
+
250
+ view._doAdopt(parentView);
251
+ parentView._doRender();
252
+
253
+ ok(parentView.get('layer'), "The parentView should have a reference to the layer.");
254
+ ok(view.get('layer'), "The view should have a reference to the layer.");
255
+ ok(child.get('layer'), "The child should have a reference to the layer.");
256
+
257
+ parentView._doDestroyLayer();
258
+ equals(parentView.get('layer'), null, "The parentView should not have a reference to the layer.");
259
+ equals(view.get('layer'), null, "The view should not have a reference to the layer.");
260
+ equals(child.get('layer'), null, "The child should not have a reference to the layer.");
261
+
262
+ // CLEAN UP
263
+ view.destroy();
264
+ });
265
+
266
+ /** Test the SC.View state propagation to child views. */
267
+ module("SC.View Adoption", {
268
+
269
+ setup: function () {
270
+ parentView = SC.View.create();
271
+ },
272
+
273
+ teardown: function () {
274
+ parentView.destroy();
275
+ parentView = null;
276
+ }
277
+
278
+ });
279
+
280
+
281
+ test("Test adding a child brings that child to the same state as the parentView.", function () {
282
+ var child = SC.View.create(),
283
+ view = SC.View.create({ childViews: [child] });
284
+
285
+ // Test expected state of the view.
286
+ view._doAdopt(parentView);
287
+ equals(parentView.viewState, SC.CoreView.UNRENDERED, "A newly created parentView should be in the state");
288
+ equals(view.viewState, SC.CoreView.UNRENDERED, "A newly created child view of unrendered parentView should be in the state");
289
+ equals(child.viewState, SC.CoreView.UNRENDERED, "A newly created child view of unrendered parentView's child view should be in the state");
290
+ ok(!view.get('_isRendered'), "_isRendered should be false");
291
+ ok(!view.get('isAttached'), "isAttached should be false");
292
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
293
+
294
+ // Render the view.
295
+ view._doRender();
296
+ equals(view.viewState, SC.CoreView.UNATTACHED, "A rendered child view of unrendered parentView should be in the state");
297
+ equals(child.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "A rendered child view of unrendered parentView's child view should be in the state");
298
+ ok(view.get('_isRendered'), "_isRendered should be true");
299
+ ok(!view.get('isAttached'), "isAttached should be false");
300
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
301
+
302
+ // Attach the view.
303
+ view._doAttach(document.body);
304
+ equals(view.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "An attached child view of unrendered parentView should be in the state");
305
+ equals(child.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "An attached child view of unrendered parentView's child view should be in the state");
306
+ ok(view.get('_isRendered'), "_isRendered should be true");
307
+ ok(!view.get('isAttached'), "isAttached should be false");
308
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
309
+
310
+ // Reset
311
+ view.destroy();
312
+ child = SC.View.create();
313
+ view = SC.View.create({ childViews: [child] });
314
+
315
+ parentView._doRender();
316
+ view._doAdopt(parentView);
317
+ equals(parentView.viewState, SC.CoreView.UNATTACHED, "A newly created parentView that is rendered should be in the state");
318
+ equals(view.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "A newly created child view of unattached parentView should be in the state");
319
+ equals(child.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "A newly created child view of unattached parentView's child view should be in the state");
320
+ ok(view.get('_isRendered'), "_isRendered should be true");
321
+ ok(!view.get('isAttached'), "isAttached should be false");
322
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
323
+
324
+ // Attach the view.
325
+ view._doAttach(document.body);
326
+ equals(view.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "An attached child view of unattached parentView should be in the state");
327
+ equals(child.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "An attached child view of unattached parentView's child view should be in the state");
328
+ ok(view.get('_isRendered'), "_isRendered should be true");
329
+ ok(!view.get('isAttached'), "isAttached should be false");
330
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
331
+
332
+ // Reset
333
+ view.destroy();
334
+ child = SC.View.create();
335
+ view = SC.View.create({ childViews: [child] });
336
+
337
+ parentView._doAttach(document.body);
338
+ view._doAdopt(parentView);
339
+ equals(parentView.viewState, SC.CoreView.ATTACHED_SHOWN, "A newly created parentView that is attached should be in the state");
340
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "A newly created child view of attached parentView should be in the state");
341
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "A child of newly created view of attached parentView should be in the state");
342
+ ok(view.get('_isRendered'), "_isRendered should be true");
343
+ ok(view.get('isAttached'), "isAttached should be true");
344
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
345
+
346
+
347
+ // CLEAN UP
348
+ view.destroy();
349
+ });
350
+
351
+
352
+ test("Test showing and hiding parentView updates child views.", function () {
353
+ var handled,
354
+ child = SC.View.create(),
355
+ view = SC.View.create({ childViews: [child] });
356
+
357
+ // Test expected state of the view.
358
+ parentView._doRender();
359
+ parentView._doAttach(document.body);
360
+ view._doAdopt(parentView);
361
+ equals(parentView.viewState, SC.CoreView.ATTACHED_SHOWN, "A newly created parentView that is attached should be in the state");
362
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "A newly created child view of unattached parentView should be in the state");
363
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "A newly created child view of unattached parentView's child view should be in the state");
364
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
365
+
366
+ // Hide the parentView.
367
+ parentView._doHide();
368
+ equals(parentView.viewState, SC.CoreView.ATTACHED_HIDDEN, "A hidden parentView that is attached should be in the state");
369
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "A child view of attached_hidden parentView should be in the state");
370
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "A child view of attached_hidden parentView's child view should be in the state");
371
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
372
+
373
+ // Show the parentView/hide the view.
374
+ handled = parentView._doShow();
375
+ ok(handled, "Calling _doShow() on parentView should be handled");
376
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doShow() on parentView changes state on view.");
377
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "Calling _doShow() on parentView changes state on child");
378
+ handled = view._doHide();
379
+ ok(handled, "Calling _doHide() should be handled");
380
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN, "Calling _doHide() on view changes state on view");
381
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "Calling _doHide() on view changes state on child");
382
+
383
+ // Reset
384
+ parentView._doHide();
385
+ view.destroy();
386
+ child = SC.View.create();
387
+ view = SC.View.create({ childViews: [child] });
388
+ view._doAdopt(parentView);
389
+
390
+ // Add child to already hidden parentView.
391
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "A child view of attached_hidden parentView should be in the state");
392
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "A child view of attached_hidden parentView's child view should be in the state");
393
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
394
+
395
+ // Reset
396
+ parentView.destroy();
397
+ parentView = SC.View.create();
398
+ parentView._doRender();
399
+ child = SC.View.create();
400
+ view = SC.View.create({ childViews: [child] });
401
+ view._doAdopt(parentView);
402
+
403
+ // Attach a parentView with children
404
+ equals(view.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "A child view of unattached parentView should be in the state");
405
+ equals(child.viewState, SC.CoreView.UNATTACHED_BY_PARENT, "A child view of unattached parentView's child view should be in the state");
406
+ parentView._doAttach(document.body);
407
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "A child view of attached_shown parentView should be in the state");
408
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "A child view of attached_shown parentView's child view should be in the state");
409
+
410
+ // CLEAN UP
411
+ view.destroy();
412
+ });
413
+
414
+ test("Test hiding with transitionHide", function () {
415
+ var child = SC.View.create(),
416
+ transitionHide = { run: function () {} },
417
+ view = SC.View.create({ childViews: [child] });
418
+
419
+ // Set up.
420
+ parentView._doRender();
421
+ parentView._doAttach(document.body);
422
+ view._doAdopt(parentView);
423
+
424
+ // Hide the parentView with transitionHide
425
+ parentView.set('transitionHide', transitionHide);
426
+ parentView._doHide();
427
+ ok(parentView.get('isVisibleInWindow'), "isVisibleInWindow of parentView should be false");
428
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
429
+ ok(child.get('isVisibleInWindow'), "isVisibleInWindow of child should be true");
430
+ parentView.didTransitionOut(transitionHide);
431
+ ok(!parentView.get('isVisibleInWindow'), "isVisibleInWindow of parentView should be false after didTransitionOut");
432
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false after didTransitionOut");
433
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false after didTransitionOut");
434
+
435
+ // CLEAN UP
436
+ view.destroy();
437
+ });
438
+
439
+ /** isVisible */
440
+ var child, view;
441
+ module("SC.View isVisible integration with shown and hidden state", {
442
+
443
+ setup: function () {
444
+ SC.run(function () {
445
+ parentView = SC.View.create();
446
+ parentView._doRender();
447
+ parentView._doAttach(document.body);
448
+
449
+ child = SC.View.create(),
450
+ view = SC.View.create({
451
+ // STUB: _executeDoUpdateContent
452
+ _executeDoUpdateContent: CoreTest.stub('_executeDoUpdateContent', SC.CoreView.prototype._executeDoUpdateContent),
453
+ // STUB: _doUpdateVisibleStyle
454
+ _doUpdateVisibleStyle: CoreTest.stub('_doUpdateVisibleStyle', SC.CoreView.prototype._doUpdateVisibleStyle),
455
+
456
+ childViews: [child],
457
+ displayProperties: ['foo'],
458
+ foo: false
459
+ });
460
+ });
461
+ },
462
+
463
+ teardown: function () {
464
+ view.destroy();
465
+ parentView.destroy();
466
+ parentView = null;
467
+ }
468
+
469
+ });
470
+
471
+ test("Test showing and hiding a hidden view in same run loop should not update visibility or content.", function () {
472
+ view._doAdopt(parentView);
473
+
474
+ SC.run(function () {
475
+ view.set('isVisible', false);
476
+ });
477
+
478
+ view._executeDoUpdateContent.expect(0);
479
+ view._doUpdateVisibleStyle.expect(1);
480
+
481
+ // Hide the view using isVisible.
482
+ SC.run(function () {
483
+ view.set('foo', true);
484
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN, "The view should be in the state");
485
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The child view should be in the state");
486
+
487
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
488
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
489
+
490
+ view.set('isVisible', true);
491
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "The view should now be in the state");
492
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "The child view should now be in the state");
493
+
494
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
495
+ ok(child.get('isVisibleInWindow'), "isVisibleInWindow of child should be true");
496
+
497
+ view.set('isVisible', false);
498
+ });
499
+
500
+ view._executeDoUpdateContent.expect(0);
501
+ view._doUpdateVisibleStyle.expect(3);
502
+ });
503
+
504
+ test("Test hiding and showing a shown view in same run loop should not update visibility.", function () {
505
+ view._doAdopt(parentView);
506
+
507
+ // Hide the view using isVisible.
508
+ SC.run(function () {
509
+ view.set('foo', true);
510
+ view.set('isVisible', false);
511
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN, "The view should be in the state");
512
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The child view should be in the state");
513
+
514
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
515
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
516
+
517
+ view.set('isVisible', true);
518
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "The view should be in the state");
519
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "The child view should be in the state");
520
+
521
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
522
+ ok(child.get('isVisibleInWindow'), "isVisibleInWindow of child should be true");
523
+ });
524
+
525
+ view._executeDoUpdateContent.expect(1);
526
+ view._doUpdateVisibleStyle.expect(2);
527
+ });
528
+
529
+
530
+ test("Test showing and hiding a hiding view in same run loop should not update visibility or content.", function () {
531
+ var transitionHide = { run: function () {} };
532
+
533
+ view._doAdopt(parentView);
534
+
535
+ view.set('transitionHide', transitionHide);
536
+
537
+ SC.run(function () {
538
+ view.set('foo', true);
539
+ view.set('isVisible', false);
540
+ });
541
+
542
+ // Hide the view using isVisible.
543
+ SC.run(function () {
544
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDING, "The view should be in the state");
545
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "The child view should be in the state");
546
+
547
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
548
+ ok(child.get('isVisibleInWindow'), "isVisibleInWindow of child should be true");
549
+
550
+ view.set('isVisible', true);
551
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "The view should be in the state");
552
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "The child view should be in the state");
553
+
554
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
555
+ ok(child.get('isVisibleInWindow'), "isVisibleInWindow of child should be true");
556
+
557
+ view.set('isVisible', false);
558
+ });
559
+
560
+ view._executeDoUpdateContent.expect(1);
561
+ view._doUpdateVisibleStyle.expect(0);
562
+ });
563
+
564
+ test("Test hiding and showing a showing view in same run loop should not update visibility.", function () {
565
+ var transitionShow = { run: function () {} };
566
+
567
+ view._doAdopt(parentView);
568
+
569
+ view.set('transitionShow', transitionShow);
570
+
571
+ SC.run(function () {
572
+ view.set('foo', true);
573
+ view.set('isVisible', false);
574
+ });
575
+
576
+ SC.run(function () {
577
+ view.set('isVisible', true);
578
+ });
579
+
580
+ // Hide the view using isVisible.
581
+ SC.run(function () {
582
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWING, "The view should be in the state");
583
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The child view should be in the state");
584
+
585
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be true");
586
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
587
+
588
+ view.set('isVisible', false);
589
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN, "The view should be in the state");
590
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The child view should be in the state");
591
+
592
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
593
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
594
+
595
+ view.set('isVisible', true);
596
+ });
597
+
598
+ view._executeDoUpdateContent.expect(1);
599
+ view._doUpdateVisibleStyle.expect(4);
600
+ });
601
+
602
+
603
+ test("Test hiding and showing an attached child view with child views.", function () {
604
+ view._doAdopt(parentView);
605
+
606
+ // Hide the view using isVisible.
607
+ SC.run(function () {
608
+ view.set('isVisible', false);
609
+ });
610
+
611
+ equals(parentView.viewState, SC.CoreView.ATTACHED_SHOWN, "The parentView view should be in the state");
612
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN, "The view should be in the state");
613
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The child view should be in the state");
614
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
615
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
616
+
617
+ // Show the view using isVisible.
618
+ SC.run(function () {
619
+ view.set('isVisible', true);
620
+ });
621
+
622
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "The view should be in the state");
623
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "The child view should be in the state");
624
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should now be true");
625
+ ok(child.get('isVisibleInWindow'), "isVisibleInWindow of child should now be true");
626
+ });
627
+
628
+
629
+ test("Test hiding an attached parentView view and then adding child views.", function () {
630
+ // Hide the parentView using isVisible and then adopting child views.
631
+ SC.run(function () {
632
+ parentView.set('isVisible', false);
633
+ view._doAdopt(parentView);
634
+ });
635
+
636
+ equals(parentView.viewState, SC.CoreView.ATTACHED_HIDDEN, "The parentView view should be in the state");
637
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The view should be in the state");
638
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The child view should be in the state");
639
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
640
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
641
+
642
+ // Show the parentView using isVisible.
643
+ SC.run(function () {
644
+ parentView.set('isVisible', true);
645
+ });
646
+
647
+ equals(parentView.viewState, SC.CoreView.ATTACHED_SHOWN, "The parentView view should be in the state");
648
+ equals(view.viewState, SC.CoreView.ATTACHED_SHOWN, "The view should be in the state");
649
+ equals(child.viewState, SC.CoreView.ATTACHED_SHOWN, "The child view should be in the state");
650
+ ok(view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
651
+ ok(child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
652
+ });
653
+
654
+
655
+ test("Test showing an attached parentView view while hiding the child view.", function () {
656
+ SC.run(function () {
657
+ parentView.set('isVisible', false);
658
+ view._doAdopt(parentView);
659
+
660
+ // Hide the view and then show the parentView using isVisible.
661
+ view.set('isVisible', false);
662
+ parentView.set('isVisible', true);
663
+ });
664
+
665
+ equals(parentView.viewState, SC.CoreView.ATTACHED_SHOWN, "The parentView view should be in the state");
666
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN, "The view should be in the state");
667
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The child view should be in the state");
668
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
669
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
670
+ });
671
+
672
+
673
+ test("Test adding a hidden child view to attached shown parentView.", function () {
674
+ // Hide the view with isVisible and then add to parentView.
675
+ SC.run(function () {
676
+ view.set('isVisible', false);
677
+ view._doAdopt(parentView);
678
+ });
679
+
680
+ equals(view.viewState, SC.CoreView.ATTACHED_HIDDEN, "The view should be in the state");
681
+ equals(child.viewState, SC.CoreView.ATTACHED_HIDDEN_BY_PARENT, "The child view should be in the state");
682
+ ok(!view.get('isVisibleInWindow'), "isVisibleInWindow should be false");
683
+ ok(!child.get('isVisibleInWindow'), "isVisibleInWindow of child should be false");
684
+ });