sproutcore 1.5.0.rc.2 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (586) hide show
  1. data/CHANGELOG +12 -0
  2. data/VERSION.yml +1 -1
  3. data/lib/buildtasks/manifest.rake +2 -1
  4. data/lib/frameworks/sproutcore/Buildfile +3 -17
  5. data/lib/frameworks/sproutcore/CHANGELOG.md +127 -0
  6. data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +15 -3
  7. data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +9 -2
  8. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +14 -14
  9. data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +8 -2
  10. data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +10 -2
  11. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +2 -3
  12. data/lib/frameworks/sproutcore/frameworks/ajax/fixtures/file_exists.json +1 -0
  13. data/lib/frameworks/sproutcore/frameworks/ajax/fixtures/malformed.json +11 -0
  14. data/lib/frameworks/sproutcore/frameworks/{foundation → ajax}/system/request.js +2 -2
  15. data/lib/frameworks/sproutcore/frameworks/{foundation → ajax}/system/response.js +0 -0
  16. data/lib/frameworks/sproutcore/frameworks/{foundation → ajax}/tests/system/request.js +1 -4
  17. data/lib/frameworks/sproutcore/frameworks/animation/core.js +3 -3
  18. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +23 -33
  19. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/function.js +39 -0
  20. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +1 -1
  21. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +4 -2
  22. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/localization.js +1 -1
  23. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +60 -0
  24. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +25 -4
  25. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +1 -1
  26. data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/core.css +4 -3
  27. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +1 -1
  28. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +8 -11
  29. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +3 -3
  30. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +5 -5
  31. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +9 -8
  32. data/lib/frameworks/sproutcore/frameworks/core_foundation/{mixins → system}/string.js +43 -41
  33. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +28 -6
  34. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +25 -1
  35. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +3 -2
  36. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +25 -1
  37. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +69 -37
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +84 -80
  39. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +78 -0
  40. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +1 -1
  41. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +12 -4
  42. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +52 -10
  43. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +47 -37
  44. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +10 -4
  45. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +0 -25
  46. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +261 -261
  47. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +21 -0
  48. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +2 -0
  49. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +21 -5
  50. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation_of_records.js +38 -13
  51. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +13 -5
  52. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecords.js +100 -0
  53. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/unloadRecord.js +55 -0
  54. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/unloadRecords.js +76 -27
  55. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +1 -1
  56. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +4 -4
  57. data/lib/frameworks/sproutcore/frameworks/desktop/debug/drag.js +2 -2
  58. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +3 -3
  59. data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +1 -1
  60. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +1 -1
  61. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +1 -1
  62. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +1 -1
  63. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +21 -6
  64. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +26 -4
  65. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +1 -1
  66. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +31 -3
  67. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +4 -4
  68. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +3 -3
  69. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +2 -2
  70. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +62 -41
  71. data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +2 -2
  72. data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +1 -1
  73. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +1 -1
  74. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +3 -3
  75. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +1 -1
  76. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +1 -1
  77. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +3 -3
  78. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +3 -3
  79. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +1 -1
  80. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +1 -1
  81. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +3 -3
  82. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +9 -7
  83. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +2 -2
  84. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +3 -3
  85. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +2 -2
  86. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +2 -2
  87. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +6 -0
  88. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/README +0 -0
  89. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/TODO +0 -0
  90. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/beautify.js +0 -0
  91. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/design.js +0 -0
  92. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/file.js +0 -0
  93. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/files.js +0 -0
  94. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/layout.js +0 -0
  95. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/library.js +0 -0
  96. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/page.js +0 -0
  97. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/property.js +0 -0
  98. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/property_editor.js +0 -0
  99. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/target.js +0 -0
  100. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/targets.js +0 -0
  101. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/view_configs.js +0 -0
  102. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/core.js +0 -0
  103. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/core_file.js +3 -3
  104. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/data_source.js +0 -0
  105. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/app_page.js +5 -5
  106. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/app-selector.css +0 -0
  107. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/button.css +0 -0
  108. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/dock.css +0 -0
  109. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/general.css +0 -0
  110. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/main-page.css +0 -0
  111. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/menu.css +0 -0
  112. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/modal.css +0 -0
  113. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/picker.css +0 -0
  114. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/search.css +0 -0
  115. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/text-field.css +0 -0
  116. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/dialogs.js +0 -0
  117. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.eot +0 -0
  118. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.otf +0 -0
  119. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.woff +0 -0
  120. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.eot +0 -0
  121. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.otf +0 -0
  122. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.woff +0 -0
  123. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/app-selector/choose-app.png +0 -0
  124. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/app-selector/list-item-sel.png +0 -0
  125. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-l.png +0 -0
  126. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-m.png +0 -0
  127. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-r.png +0 -0
  128. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-l.png +0 -0
  129. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-m.png +0 -0
  130. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-r.png +0 -0
  131. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/active-l.png +0 -0
  132. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/active-r.png +0 -0
  133. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-l.png +0 -0
  134. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-r.png +0 -0
  135. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/regular-l.png +0 -0
  136. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/regular-r.png +0 -0
  137. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-l.png +0 -0
  138. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-r.png +0 -0
  139. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-l.png +0 -0
  140. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-r.png +0 -0
  141. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-l.png +0 -0
  142. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-r.png +0 -0
  143. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-l.png +0 -0
  144. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-m.png +0 -0
  145. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-r.png +0 -0
  146. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-l.png +0 -0
  147. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-r.png +0 -0
  148. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-l.png +0 -0
  149. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-r.png +0 -0
  150. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-l.png +0 -0
  151. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-r.png +0 -0
  152. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-l.png +0 -0
  153. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-r.png +0 -0
  154. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-l.png +0 -0
  155. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-m.png +0 -0
  156. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-r.png +0 -0
  157. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-l.png +0 -0
  158. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-m.png +0 -0
  159. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-r.png +0 -0
  160. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-l.png +0 -0
  161. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-m.png +0 -0
  162. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-r.png +0 -0
  163. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-l.png +0 -0
  164. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-m.png +0 -0
  165. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-r.png +0 -0
  166. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-l.png +0 -0
  167. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-m.png +0 -0
  168. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-r.png +0 -0
  169. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/active-m.png +0 -0
  170. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/disabled-m.png +0 -0
  171. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/regular-m.png +0 -0
  172. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-active-m.png +0 -0
  173. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-disabled-m.png +0 -0
  174. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-m.png +0 -0
  175. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/active-l.png +0 -0
  176. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/active-r.png +0 -0
  177. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/disabled-l.png +0 -0
  178. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/disabled-r.png +0 -0
  179. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/regular-l.png +0 -0
  180. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/regular-r.png +0 -0
  181. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-active-l.png +0 -0
  182. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-active-r.png +0 -0
  183. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-l.png +0 -0
  184. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-r.png +0 -0
  185. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-l.png +0 -0
  186. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-r.png +0 -0
  187. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/actions-active.png +0 -0
  188. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/actions.png +0 -0
  189. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/inspector-active.png +0 -0
  190. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/inspector.png +0 -0
  191. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/library-active.png +0 -0
  192. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/library.png +0 -0
  193. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/projects-active.png +0 -0
  194. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/projects.png +0 -0
  195. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/run-active.png +0 -0
  196. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/run.png +0 -0
  197. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/save-active.png +0 -0
  198. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/save.png +0 -0
  199. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/greenhouse-l.png +0 -0
  200. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/greenhouse-s.png +0 -0
  201. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/sproutcore.png +0 -0
  202. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/main-bg.png +0 -0
  203. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom-left.png +0 -0
  204. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom-right.png +0 -0
  205. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom.png +0 -0
  206. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/close-active.png +0 -0
  207. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/close.png +0 -0
  208. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/left.png +0 -0
  209. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-bottom.png +0 -0
  210. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-left.png +0 -0
  211. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-right.png +0 -0
  212. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-top.png +0 -0
  213. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/right.png +0 -0
  214. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/search-active.png +0 -0
  215. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/search.png +0 -0
  216. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top-left.png +0 -0
  217. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top-right.png +0 -0
  218. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top.png +0 -0
  219. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/toolbar-bg.png +0 -0
  220. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/inspectors.js +2 -2
  221. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/loading.rhtml +0 -0
  222. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/main_page.js +0 -0
  223. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/strings.js +0 -0
  224. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/fixtures/file.js +0 -0
  225. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/main.js +0 -0
  226. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/mixins/drop_down.js +0 -0
  227. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/design.js +0 -0
  228. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/dir.js +1 -1
  229. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/file.js +1 -1
  230. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/target.js +0 -0
  231. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/view_config.js +0 -0
  232. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/resources/test_page.js +0 -0
  233. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/states/inspector.js +0 -0
  234. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/states/library.js +0 -0
  235. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/states/main.js +0 -0
  236. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/states/modals.js +0 -0
  237. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/states/ready.js +0 -0
  238. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/design.js +0 -0
  239. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/designs.js +0 -0
  240. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/file.js +0 -0
  241. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/files.js +0 -0
  242. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/models/file.js +0 -0
  243. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/models/view_config.js +0 -0
  244. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/views/list_item.js +0 -0
  245. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/views/plist_item.js +2 -2
  246. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/theme.js +0 -0
  247. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/anchor.js +0 -0
  248. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/application_list_item.js +0 -0
  249. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/event_blocker.js +0 -0
  250. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/label_designer.js +0 -0
  251. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/list_item.js +0 -0
  252. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/plist_item.js +0 -0
  253. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/simple_button.js +0 -0
  254. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/tear_off_picker.js +0 -0
  255. data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/web.js +0 -0
  256. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/coders/design.js +0 -0
  257. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/coders/object.js +0 -0
  258. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/controllers/controllers.js +0 -0
  259. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/controllers/design.js +0 -0
  260. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/controllers/designs.js +0 -0
  261. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/controllers/page_design.js +0 -0
  262. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/controllers/page_files.js +0 -0
  263. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/core.js +0 -0
  264. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/css/css_rule.js +0 -0
  265. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/css/css_style.js +0 -0
  266. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/css/css_style_sheet.js +0 -0
  267. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/designers/button.js +1 -1
  268. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/designers/label.js +1 -1
  269. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/designers/object_designer.js +0 -0
  270. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/designers/tab.js +1 -1
  271. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/designers/text_field.js +1 -1
  272. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/designers/view_designer.js +2 -2
  273. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/css/designer.css +0 -0
  274. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/design_page.js +3 -3
  275. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/high_light.css +0 -0
  276. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/controller.png +0 -0
  277. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-bg.png +0 -0
  278. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-bg.png +0 -0
  279. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-divider.png +0 -0
  280. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-sel-bg.png +0 -0
  281. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-sel-divider.png +0 -0
  282. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/main-bg.png +0 -0
  283. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/page.png +0 -0
  284. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/pane.png +0 -0
  285. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/view.png +0 -0
  286. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/selection_handles.css +0 -0
  287. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/ext/binding.js +0 -0
  288. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/ext/object.js +0 -0
  289. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/ext/page.js +0 -0
  290. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/ext/view.js +0 -0
  291. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/mixins/button.js +1 -1
  292. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/mixins/snap_lines.js +0 -0
  293. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/tests/coders/page.js +1 -1
  294. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/tests/designers/view_designer.js +0 -0
  295. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/designer_drop_target.js +0 -0
  296. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/drawing.js +0 -0
  297. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/high_light.js +0 -0
  298. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/page_item_view.js +0 -0
  299. data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/selection_handles.js +3 -3
  300. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +1 -1
  301. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +99 -84
  302. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +10 -0
  303. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +3 -3
  304. data/lib/frameworks/sproutcore/frameworks/forms/{renderer_delegates → render_delegates}/form.js +0 -0
  305. data/lib/frameworks/sproutcore/frameworks/forms/{renderer_delegates → render_delegates}/form_row.js +0 -0
  306. data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +3 -3
  307. data/lib/frameworks/sproutcore/frameworks/forms/views/form_row.js +4 -3
  308. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +23 -0
  309. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/checkbox_view.css +5 -0
  310. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/radio_view.css +7 -0
  311. data/lib/frameworks/sproutcore/frameworks/foundation/ext/string.js +89 -0
  312. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +8 -9
  313. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +10 -11
  314. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +67 -8
  315. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +20 -20
  316. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +149 -174
  317. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +94 -103
  318. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +132 -139
  319. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +66 -56
  320. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +19 -20
  321. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/tree_item_content.js +10 -6
  322. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +17 -8
  323. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +3 -1
  324. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +4 -2
  325. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +63 -54
  326. data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +1 -0
  327. data/lib/frameworks/sproutcore/frameworks/foundation/system/cookie.js +20 -21
  328. data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +5 -2
  329. data/lib/frameworks/sproutcore/frameworks/foundation/{mixins → system}/string.js +106 -82
  330. data/lib/frameworks/sproutcore/frameworks/foundation/tests/{mixins → system}/string.js +0 -0
  331. data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +10 -12
  332. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +44 -9
  333. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +45 -25
  334. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +10 -3
  335. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/nextValidKeyView.js +7 -7
  336. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +38 -1
  337. data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
  338. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +38 -11
  339. data/lib/frameworks/sproutcore/frameworks/foundation/validators/email.js +1 -1
  340. data/lib/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +5 -9
  341. data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +1 -1
  342. data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
  343. data/lib/frameworks/sproutcore/frameworks/foundation/validators/positive_integer.js +1 -1
  344. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +4 -2
  345. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +5 -4
  346. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +2 -2
  347. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +10 -9
  348. data/lib/frameworks/sproutcore/frameworks/foundation/{mixins → views}/inline_text_field.js +0 -0
  349. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +2 -2
  350. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +73 -61
  351. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +5 -1
  352. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +1 -1
  353. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +2 -2
  354. data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +2 -2
  355. data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +2 -2
  356. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +1 -1
  357. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +7 -380
  358. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +92 -0
  359. data/lib/frameworks/sproutcore/frameworks/runtime/ext/date.js +15 -0
  360. data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +189 -0
  361. data/lib/frameworks/sproutcore/frameworks/runtime/ext/string.js +31 -0
  362. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +88 -189
  363. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1 -0
  364. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +9 -3
  365. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +3 -2
  366. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +3 -0
  367. data/lib/frameworks/sproutcore/frameworks/runtime/system/function.js +76 -0
  368. data/lib/frameworks/sproutcore/frameworks/{core_foundation → runtime}/system/json.js +0 -0
  369. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +1 -0
  370. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +1 -0
  371. data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +60 -0
  372. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +27 -0
  373. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +26 -1
  374. data/lib/frameworks/sproutcore/frameworks/{core_foundation → runtime}/tests/system/json.js +0 -0
  375. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.js +1 -1
  376. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +4 -0
  377. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +1 -1
  378. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/panel.js +1 -1
  379. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +1 -1
  380. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +1 -1
  381. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/well.js +1 -1
  382. data/lib/sproutcore/rack/proxy.rb +1 -1
  383. data/lib/sproutcore/tools/docs.rb +1 -1
  384. data/lib/sproutcore/tools/gen.rb +1 -1
  385. data/lib/sproutcore/tools/init.rb +1 -1
  386. data/lib/sproutcore/tools/server.rb +9 -1
  387. data/sproutcore.gemspec +1 -1
  388. metadata +247 -429
  389. data/design/Technical Notes.graffle/QuickLook/Preview.pdf +0 -0
  390. data/design/Technical Notes.graffle/QuickLook/Thumbnail.tiff +0 -0
  391. data/design/Technical Notes.graffle/data.plist +0 -5534
  392. data/design/Technical Notes.graffle/image8.png +0 -0
  393. data/lib/frameworks/sproutcore/apps/docs/core.js +0 -27
  394. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Preview.pdf +0 -0
  395. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Thumbnail.tiff +0 -0
  396. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/data.plist +0 -14378
  397. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image10.png +0 -0
  398. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image11.png +0 -0
  399. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image13.png +0 -0
  400. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image14.png +0 -0
  401. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image8.png +0 -0
  402. data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image9.tiff +0 -0
  403. data/lib/frameworks/sproutcore/apps/docs/english.lproj/loading.rhtml +0 -9
  404. data/lib/frameworks/sproutcore/apps/docs/english.lproj/main_page.js +0 -22
  405. data/lib/frameworks/sproutcore/apps/docs/english.lproj/strings.js +0 -15
  406. data/lib/frameworks/sproutcore/apps/docs/main.js +0 -30
  407. data/lib/frameworks/sproutcore/design/CollectionView State Charts.graffle +0 -4848
  408. data/lib/frameworks/sproutcore/design/Design Charts.graffle +0 -16845
  409. data/lib/frameworks/sproutcore/design/Sproutcore_DatastoreDesign.graffle/QuickLook/Preview.pdf +0 -0
  410. data/lib/frameworks/sproutcore/design/Sproutcore_DatastoreDesign.graffle/QuickLook/Thumbnail.tiff +0 -0
  411. data/lib/frameworks/sproutcore/design/Sproutcore_DatastoreDesign.graffle/data.plist +0 -19588
  412. data/lib/frameworks/sproutcore/design/Sproutcore_DatastoreDesign.graffle/image8.png +0 -0
  413. data/lib/frameworks/sproutcore/design/Sproutcore_Design_Template.graffle/QuickLook/Preview.pdf +0 -0
  414. data/lib/frameworks/sproutcore/design/Sproutcore_Design_Template.graffle/QuickLook/Thumbnail.tiff +0 -0
  415. data/lib/frameworks/sproutcore/design/Sproutcore_Design_Template.graffle/data.plist +0 -1452
  416. data/lib/frameworks/sproutcore/design/Sproutcore_Design_Template.graffle/image8.png +0 -0
  417. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/QuickLook/Preview.pdf +0 -0
  418. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/QuickLook/Thumbnail.tiff +0 -0
  419. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/data.plist +0 -24187
  420. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image10.png +0 -0
  421. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image11.png +0 -0
  422. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image13.png +0 -0
  423. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image15.png +0 -0
  424. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image16.png +0 -0
  425. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image17.png +0 -0
  426. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image18.png +0 -0
  427. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image19.png +0 -0
  428. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image22.tiff +0 -0
  429. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image23.png +0 -0
  430. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image24.png +0 -0
  431. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image25.png +0 -0
  432. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image30.png +0 -0
  433. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image31.png +0 -0
  434. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image8.png +0 -0
  435. data/lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image9.png +0 -0
  436. data/lib/frameworks/sproutcore/design/greenhouse-statechart.graffle +0 -9025
  437. data/lib/frameworks/sproutcore/design/iphone-webapp-loading.psd +0 -0
  438. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scene_view/databind.js +0 -111
  439. data/lib/frameworks/sproutcore/frameworks/foundation/system/staticqueue.js +0 -59
  440. data/lib/frameworks/sproutcore/frameworks/foundation/system/time.js +0 -474
  441. data/lib/frameworks/sproutcore/themes/ace/designs/dark.psd +0 -0
  442. data/lib/frameworks/sproutcore/themes/ace/designs/light.psd +0 -0
  443. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/active_button.psd +0 -0
  444. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/normal_button.psd +0 -0
  445. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_active_button.psd +0 -0
  446. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_button.psd +0 -0
  447. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button.psd +0 -0
  448. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_capsule.psd +0 -0
  449. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_pointer.psd +0 -0
  450. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button.psd +0 -0
  451. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_capsule.psd +0 -0
  452. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_pointer.psd +0 -0
  453. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button.psd +0 -0
  454. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_capsule.psd +0 -0
  455. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_pointer.psd +0 -0
  456. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button.psd +0 -0
  457. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_capsule.psd +0 -0
  458. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_pointer.psd +0 -0
  459. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button.psd +0 -0
  460. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button_pointer.psd +0 -0
  461. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button.psd +0 -0
  462. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button_pointer.psd +0 -0
  463. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button.psd +0 -0
  464. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button_pointer.psd +0 -0
  465. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button.psd +0 -0
  466. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button_pointer.psd +0 -0
  467. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/active_button.psd +0 -0
  468. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/normal_button.psd +0 -0
  469. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_active_button.psd +0 -0
  470. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_button.psd +0 -0
  471. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button.psd +0 -0
  472. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_capsule.psd +0 -0
  473. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_pointer.psd +0 -0
  474. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button.psd +0 -0
  475. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_capsule.psd +0 -0
  476. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_pointer.psd +0 -0
  477. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button.psd +0 -0
  478. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_capsule.psd +0 -0
  479. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_pointer.psd +0 -0
  480. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button.psd +0 -0
  481. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_capsule.psd +0 -0
  482. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_pointer.psd +0 -0
  483. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button.psd +0 -0
  484. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button_pointer.psd +0 -0
  485. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button.psd +0 -0
  486. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button_pointer.psd +0 -0
  487. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button.psd +0 -0
  488. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button_pointer.psd +0 -0
  489. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button.psd +0 -0
  490. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button_pointer.psd +0 -0
  491. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/active_select.psd +0 -0
  492. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/normal_select.psd +0 -0
  493. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
  494. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
  495. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
  496. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
  497. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
  498. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
  499. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
  500. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
  501. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
  502. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
  503. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
  504. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
  505. data/lib/frameworks/sproutcore/themes/ace/designs/psds/collection/source-list/selection.psd +0 -0
  506. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed.psd +0 -0
  507. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed_active.psd +0 -0
  508. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open.psd +0 -0
  509. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open_active.psd +0 -0
  510. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark.psd +0 -0
  511. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark_active.psd +0 -0
  512. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/down.psd +0 -0
  513. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu.psd +0 -0
  514. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
  515. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/up.psd +0 -0
  516. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/panel.psd +0 -0
  517. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/pointers.psd +0 -0
  518. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover.psd +0 -0
  519. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_empty.psd +0 -0
  520. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_notoolbar.psd +0 -0
  521. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers.psd +0 -0
  522. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers_notoolbar.psd +0 -0
  523. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_content.psd +0 -0
  524. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_indeterminate_content.psd +0 -0
  525. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_track.psd +0 -0
  526. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_active.psd +0 -0
  527. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed.psd +0 -0
  528. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed_active.psd +0 -0
  529. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected.psd +0 -0
  530. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected_active.psd +0 -0
  531. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_unselected.psd +0 -0
  532. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/thumb.psd +0 -0
  533. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows.psd +0 -0
  534. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows_active.psd +0 -0
  535. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/thumb.psd +0 -0
  536. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows.psd +0 -0
  537. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows_active.psd +0 -0
  538. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_active.psd +0 -0
  539. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_normal.psd +0 -0
  540. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected.psd +0 -0
  541. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected_active.psd +0 -0
  542. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_active.psd +0 -0
  543. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_normal.psd +0 -0
  544. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected.psd +0 -0
  545. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected_active.psd +0 -0
  546. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_active.psd +0 -0
  547. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_normal.psd +0 -0
  548. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected.psd +0 -0
  549. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected_active.psd +0 -0
  550. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_active.psd +0 -0
  551. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_normal.psd +0 -0
  552. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected.psd +0 -0
  553. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected_active.psd +0 -0
  554. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob.psd +0 -0
  555. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob_active.psd +0 -0
  556. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob.psd +0 -0
  557. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob_active.psd +0 -0
  558. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob.psd +0 -0
  559. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob_active.psd +0 -0
  560. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/track.psd +0 -0
  561. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/track.psd +0 -0
  562. data/lib/frameworks/sproutcore/themes/ace/designs/psds/toolbar/toolbar.psd +0 -0
  563. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch.psd +0 -0
  564. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.psd +0 -0
  565. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.psd +0 -0
  566. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.psd +0 -0
  567. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/Panel.drawit/Data +0 -0
  568. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
  569. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
  570. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/SproutCore Theme Buttons.psd +0 -0
  571. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView Pattern.drawit/Data +0 -0
  572. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg +0 -0
  573. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
  574. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/panel-sprite-x.drawit/Data +0 -0
  575. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
  576. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
  577. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/panel-sprite-y.drawit/Data +0 -0
  578. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
  579. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
  580. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/sc-theme-repeat-x-2.psd +0 -0
  581. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/sc-theme-repeat-x.psd +0 -0
  582. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/sc-theme-sprite.psd +0 -0
  583. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/sc-theme-ysprite.psd +0 -0
  584. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/shared-icons.psd +0 -0
  585. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/sproutcore-logo.psd +0 -0
  586. data/lib/frameworks/sproutcore/themes/legacy_theme/Source/sticky-note.psd +0 -0
@@ -437,7 +437,7 @@ SC.DateTime.mixin(SC.Comparable,
437
437
  @property
438
438
  @type {Array}
439
439
  */
440
- _englishDayNames: 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday'.w(),
440
+ _englishDayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
441
441
 
442
442
  /**
443
443
  @property
@@ -68,19 +68,19 @@ SC.DateTime.mixin(
68
68
  */
69
69
  _setup: function() {
70
70
  if (!SC.DateTime.dayNames) {
71
- SC.DateTime.dayNames = '_SC.DateTime.dayNames'.loc().w();
71
+ SC.DateTime.dayNames = SC.String.w(SC.String.loc('_SC.DateTime.dayNames'));
72
72
  }
73
73
 
74
74
  if (!SC.DateTime.abbreviatedDayNames) {
75
- SC.DateTime.abbreviatedDayNames = '_SC.DateTime.abbreviatedDayNames'.loc().w();
75
+ SC.DateTime.abbreviatedDayNames = SC.String.w(SC.String.loc('_SC.DateTime.abbreviatedDayNames'));
76
76
  }
77
77
 
78
78
  if (!SC.DateTime.monthNames) {
79
- SC.DateTime.monthNames = '_SC.DateTime.monthNames'.loc().w();
79
+ SC.DateTime.monthNames = SC.String.w(SC.String.loc('_SC.DateTime.monthNames'));
80
80
  }
81
81
 
82
82
  if (!SC.DateTime.abbreviatedMonthNames) {
83
- SC.DateTime.abbreviatedMonthNames = '_SC.DateTime.abbreviatedMonthNames'.loc().w();
83
+ SC.DateTime.abbreviatedMonthNames = SC.String.w(SC.String.loc('_SC.DateTime.abbreviatedMonthNames'));
84
84
  }
85
85
  }
86
86
 
@@ -5,7 +5,7 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- require('system/drag') ;
8
+ sc_require('system/drag') ;
9
9
 
10
10
  SC.Drag.mixin(
11
11
  /** @scope SC.Drag */ {
@@ -39,4 +39,4 @@ SC.Drag.mixin(
39
39
  return ret.join('|') ;
40
40
  }
41
41
 
42
- });
42
+ });
@@ -5,8 +5,8 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- require('panes/picker');
9
- require('views/menu_item');
8
+ sc_require('panes/picker');
9
+ sc_require('views/menu_item');
10
10
 
11
11
  /**
12
12
  @class
@@ -468,7 +468,7 @@ SC.MenuPane = SC.PickerPane.extend(
468
468
  @isReadOnly
469
469
  @property Array
470
470
  */
471
- menuItemKeys: 'itemTitleKey itemValueKey itemIsEnabledKey itemIconKey itemSeparatorKey itemActionKey itemCheckboxKey itemShortCutKey itemHeightKey itemSubMenuKey itemKeyEquivalentKey itemTargetKey'.w(),
471
+ menuItemKeys: ['itemTitleKey', 'itemValueKey', 'itemIsEnabledKey', 'itemIconKey', 'itemSeparatorKey', 'itemActionKey', 'itemCheckboxKey', 'itemShortCutKey', 'itemHeightKey', 'itemSubMenuKey', 'itemKeyEquivalentKey', 'itemTargetKey'],
472
472
 
473
473
  // ..........................................................
474
474
  // INTERNAL PROPERTIES
@@ -373,7 +373,7 @@ SC.SelectButtonView = SC.ButtonView.extend(
373
373
  object.get(nameKey) : object[nameKey]) : object.toString() ;
374
374
 
375
375
  // localize name if specified.
376
- name = shouldLocalize? name.loc() : name ;
376
+ name = shouldLocalize? SC.String.loc(name) : name ;
377
377
 
378
378
  //Get the icon value
379
379
  icon = iconKey ? (object.get ?
@@ -5,7 +5,7 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- require('system/drag') ;
8
+ sc_require('system/drag') ;
9
9
 
10
10
  /**
11
11
  @namespace
@@ -5,7 +5,7 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- require('system/drag') ;
8
+ sc_require('system/drag') ;
9
9
 
10
10
  /**
11
11
  @namespace
@@ -5,7 +5,7 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- require('system/drag');
8
+ sc_require('system/drag');
9
9
 
10
10
  /**
11
11
  @mixin
@@ -8,27 +8,42 @@
8
8
 
9
9
  SC.BaseTheme.imageButtonRenderDelegate = SC.RenderDelegate.create({
10
10
  name: 'image-button',
11
+
11
12
  render: function(dataSource, context) {
13
+ var image = dataSource.get('image'),
14
+ toolTip = dataSource.get('toolTip');
15
+
12
16
  // render controlSize
13
17
  this.addSizeClassName(dataSource, context);
14
18
 
15
- var image = dataSource.get('image');
16
-
17
19
  context.addClass('no-min-width');
18
- if (image) {
19
- context.push("<div class='img "+image+"'></div>");
20
+
21
+ if (toolTip) {
22
+ context.attr('title', toolTip);
23
+ context.attr('alt', toolTip);
20
24
  }
21
25
 
22
- else {
26
+ if (image) {
27
+ context.push("<div class='img "+image+"'></div>");
28
+ } else {
23
29
  context.push("<div class='img'></div>");
24
30
  }
25
31
  },
26
32
 
27
33
  update: function(dataSource, $) {
34
+ var image, toolTip;
35
+
28
36
  this.updateSizeClassName(dataSource, $);
29
37
 
38
+ if (dataSource.didChangeFor('imageButtonRenderDelegate', 'toolTip')) {
39
+ toolTip = dataSource.get('toolTip');
40
+
41
+ $.attr('title', toolTip);
42
+ $.attr('alt', toolTip);
43
+ }
44
+
30
45
  if (dataSource.didChangeFor('imageButtonRenderDelegate', 'image')) {
31
- var image = dataSource.get('image');
46
+ image = dataSource.get('image');
32
47
 
33
48
  $.children()[0].className = 'img '+image;
34
49
  }
@@ -5,7 +5,7 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- var view, content, contentController, pane ;
8
+ var view, content, contentController, pane, actionCalled = 0;
9
9
 
10
10
  module("SC.CollectionView Mouse Events", {
11
11
  setup: function() {
@@ -31,7 +31,10 @@ module("SC.CollectionView Mouse Events", {
31
31
  },
32
32
 
33
33
  isVisibleInWindow: YES,
34
- acceptsFirstResponder: YES
34
+ acceptsFirstResponder: YES,
35
+ action: function() {
36
+ actionCalled++;
37
+ }
35
38
  });
36
39
 
37
40
  pane = SC.MainPane.create();
@@ -44,6 +47,7 @@ module("SC.CollectionView Mouse Events", {
44
47
  teardown: function() {
45
48
  SC.RunLoop.begin();
46
49
  pane.remove();
50
+ actionCalled = 0;
47
51
  SC.RunLoop.end();
48
52
  }
49
53
  });
@@ -84,7 +88,7 @@ function clickOn(view, index, shiftKey, ctrlKey, expected, delay) {
84
88
  if (ctrlKey) modifiers.push('ctrl');
85
89
  modifiers = modifiers.length > 0 ? modifiers.join('+') : 'no modifiers';
86
90
 
87
- ok(expected.isEqual(sel), 'should have selection: %@ after click with %@ on item[%@], actual: %@'.fmt(expected, modifiers, index, sel));
91
+ ok(expected ? expected.isEqual(sel) : expected === sel, 'should have selection: %@ after click with %@ on item[%@], actual: %@'.fmt(expected, modifiers, index, sel));
88
92
  SC.RunLoop.end();
89
93
  if (delay) window.start() ; // starts the test runner
90
94
  };
@@ -231,10 +235,28 @@ test("clicking on a selected item should remove it from the selection when useTo
231
235
  clickOn(view, 5, NO, NO, selectionFromIndexSet(SC.IndexSet.create(1,4)));
232
236
  });
233
237
 
234
-
235
238
  test("clicking on an unselected item should select it and clear the previous selection when useToggleSelection is true and allowsMultipleSelection is not", function() {
236
239
  view.set('useToggleSelection', YES);
237
240
  contentController.set('allowsMultipleSelection', NO);
238
241
  clickOn(view, 1, NO, NO, selectionFromIndex(1));
239
242
  clickOn(view, 3, NO, NO, selectionFromIndex(3));
240
243
  });
244
+
245
+ test("clicking on an unselected item should fire action when useToggleSelection is true and actOnSelect is true", function() {
246
+ view.set('useToggleSelection', YES);
247
+ view.set('actOnSelect', YES);
248
+
249
+ equals(actionCalled, 0, "precond - action hasn't been called");
250
+ clickOn(view, 1, NO, NO);
251
+ equals(actionCalled, 1, "Action called when item is selected");
252
+ });
253
+
254
+ test("click on an item when isSelectable is false doesn't do anything", function() {
255
+ view.set('isSelectable', NO);
256
+ clickOn(view, 1, NO, NO, null);
257
+ });
258
+
259
+ test("click on an item when isEnabled is false doesn't do anything", function() {
260
+ view.set('isEnabled', NO);
261
+ clickOn(view, 1, NO, NO, null);
262
+ });
@@ -70,7 +70,7 @@ pane.verifyEmpty = function verifyEmpty(view, expectedHint) {
70
70
  var layer = view.$();
71
71
 
72
72
  ok(!layer.hasClass('not-empty'), 'layer should not have not-empty class');
73
- if(SC.browser.webkit) equals(input.val(), '', 'input should have empty value');
73
+ if(SC.browser.webkit || parseInt(SC.browser.mozilla) >= 2.0) equals(input.val(), '', 'input should have empty value');
74
74
  else equals(input.val(), expectedHint, 'input should have empty value');
75
75
 
76
76
  if (expectedHint) {
@@ -1,5 +1,11 @@
1
1
 
2
2
  var pane = SC.ControlTestPane.design({height:24})
3
+ .add('default', SC.ImageButtonView, {
4
+ layout: { left: 0, top: 2, right: 0, bottom: 2 },
5
+ image: 'start',
6
+ toolTip: 'OMGHI'
7
+ })
8
+
3
9
  .add("iconchange", SC.ImageButtonView, {
4
10
  layout: { left: 0, top: 2, right: 0, bottom: 2 },
5
11
  image: 'start'
@@ -9,12 +15,34 @@ pane.show();
9
15
 
10
16
  module('SC.ImageButtonView ui');
11
17
 
12
- test("Check if icon class is set properly on ImageButton",function(){
13
- var viewElem=pane.view('iconchange').$('div');
18
+ test("Check if image class is set properly on ImageButton", function() {
19
+ var viewElem = pane.view('default').$('div');
14
20
  ok(viewElem.hasClass('start'), 'Icon class set initially to "start"');
15
21
  });
16
22
 
17
- test("Check if icon class is set properly on ImageButton if changed", function(){
23
+ test("toolTip support", function() {
24
+ var view = pane.view('default'),
25
+ viewElem = view.$();
26
+
27
+ equals(viewElem.attr('title'), 'OMGHI', 'title attribute is set correctly');
28
+ equals(viewElem.attr('alt'), 'OMGHI', 'alt attribute is set correctly');
29
+
30
+ SC.run(function() {
31
+ view.set('toolTip', 'ZOMG');
32
+ });
33
+
34
+ equals(viewElem.attr('title'), 'ZOMG', 'title attribute is updated correctly');
35
+ equals(viewElem.attr('alt'), 'ZOMG', 'alt attribute is updated correctly');
36
+
37
+ SC.run(function() {
38
+ view.set('toolTip', null);
39
+ });
40
+
41
+ equals(viewElem.attr('title'), "", 'title attribute is removed correctly');
42
+ equals(viewElem.attr('alt'), "", 'alt attribute is removed correctly');
43
+ });
44
+
45
+ test("Check if image class is set properly on ImageButton if changed", function() {
18
46
  SC.RunLoop.begin();
19
47
  var viewElem = pane.view('iconchange');
20
48
  viewElem.set('image','stop');
@@ -356,7 +356,7 @@ test("basic", function() {
356
356
  ok(!view.$().hasClass('disabled'), 'should NOT have disabled class');
357
357
  ok(view.$('.sc-inner'), 'should have sc-inner class');
358
358
  ok(view.$('.sc-handle'), 'should have sc-handle class');
359
- equals(view.$('.sc-handle').css('left'), '50%', 'left of sc-handle should be 50%');
359
+ equals(view.$('.sc-handle')[0].style.left, '50%', 'left of sc-handle should be 50%');
360
360
  });
361
361
 
362
362
  test("disabled", function() {
@@ -365,7 +365,7 @@ test("disabled", function() {
365
365
  ok(view.$().hasClass('disabled'), 'should have disabled class');
366
366
  ok(view.$('.sc-inner'), 'should have sc-inner class');
367
367
  ok(view.$('.sc-handle'), 'should have sc-handle class');
368
- equals(view.$('.sc-handle').css('left'), '50%', 'left of sc-handle should be 50%');
368
+ equals(view.$('.sc-handle')[0].style.left, '50%', 'left of sc-handle should be 50%');
369
369
  });
370
370
 
371
371
  test("basic value 100", function() {
@@ -374,7 +374,7 @@ test("basic value 100", function() {
374
374
  ok(!view.$().hasClass('disabled'), 'should have disabled class');
375
375
  ok(view.$('.sc-inner'), 'should have sc-inner class');
376
376
  ok(view.$('.sc-handle'), 'should have sc-handle class');
377
- equals(view.$('.sc-handle').css('left'), '100%', 'left of sc-handle should be 100%');
377
+ equals(view.$('.sc-handle')[0].style.left, '100%', 'left of sc-handle should be 100%');
378
378
  });
379
379
 
380
380
  test("basic step 20", function() {
@@ -383,7 +383,7 @@ test("basic step 20", function() {
383
383
  ok(!view.$().hasClass('disabled'), 'should have disabled class');
384
384
  ok(view.$('.sc-inner'), 'should have sc-inner class');
385
385
  ok(view.$('.sc-handle'), 'should have sc-handle class');
386
- equals(view.$('.sc-handle').css('left'), '60%', 'left of sc-handle should be 60%');
386
+ equals(view.$('.sc-handle')[0].style.left, '60%', 'left of sc-handle should be 60%');
387
387
  });
388
388
 
389
389
  test("Check if aria role is set to slider view", function() {
@@ -66,8 +66,8 @@ SC.ButtonView = SC.View.extend(SC.Control,
66
66
  @default YES
67
67
  */
68
68
  acceptsFirstResponder: function() {
69
- if(!SC.SAFARI_FOCUS_BEHAVIOR) return this.get('isEnabled');
70
- else return NO;
69
+ if (SC.FOCUS_ALL_CONTROLS) { return this.get('isEnabled'); }
70
+ return NO;
71
71
  }.property('isEnabled'),
72
72
 
73
73
  /**
@@ -210,7 +210,7 @@ SC.ButtonView = SC.View.extend(SC.Control,
210
210
  */
211
211
  displayTitle: function() {
212
212
  var ret = this.get('title');
213
- return (ret && this.get('localize')) ? ret.loc() : (ret || '');
213
+ return (ret && this.get('localize')) ? SC.String.loc(ret) : (ret || '');
214
214
  }.property('title','localize').cacheable(),
215
215
 
216
216
  /**
@@ -71,8 +71,8 @@ SC.CheckboxView = SC.ButtonView.extend(SC.StaticLayout,
71
71
  @observes isEnabled
72
72
  */
73
73
  acceptsFirstResponder: function() {
74
- if(!SC.SAFARI_FOCUS_BEHAVIOR) return this.get('isEnabled');
75
- else return NO;
74
+ if (SC.FOCUS_ALL_CONTROLS) { return this.get('isEnabled'); }
75
+ return NO;
76
76
  }.property('isEnabled'),
77
77
 
78
78
 
@@ -1056,10 +1056,10 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate, SC.CollectionConte
1056
1056
  _TMP_ATTRS: {},
1057
1057
 
1058
1058
  /** @private */
1059
- _COLLECTION_CLASS_NAMES: 'sc-collection-item'.w(),
1059
+ _COLLECTION_CLASS_NAMES: ['sc-collection-item'],
1060
1060
 
1061
1061
  /** @private */
1062
- _GROUP_COLLECTION_CLASS_NAMES: 'sc-collection-item sc-group-item'.w(),
1062
+ _GROUP_COLLECTION_CLASS_NAMES: ['sc-collection-item', 'sc-group-item'],
1063
1063
 
1064
1064
  /** @private */
1065
1065
  _VIEW_POOL: null,
@@ -1513,7 +1513,7 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate, SC.CollectionConte
1513
1513
  groupIndexes = this.get('_contentGroupIndexes'),
1514
1514
  sel;
1515
1515
 
1516
- if(!this.get('isSelectable')) return this;
1516
+ if(!this.get('isSelectable') || !this.get('isEnabled')) return this;
1517
1517
 
1518
1518
  // normalize
1519
1519
  if (SC.typeOf(indexes) === SC.T_NUMBER) {
@@ -1566,12 +1566,11 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate, SC.CollectionConte
1566
1566
  @returns {SC.CollectionView} receiver
1567
1567
  */
1568
1568
  deselect: function(indexes) {
1569
-
1570
1569
  var sel = this.get('selection'),
1571
1570
  content = this.get('content'),
1572
1571
  del = this.get('selectionDelegate');
1573
1572
 
1574
- if(!this.get('isSelectable')) return this;
1573
+ if(!this.get('isSelectable') || !this.get('isEnabled')) return this;
1575
1574
  if (!sel || sel.get('length')===0) return this; // nothing to do
1576
1575
 
1577
1576
  // normalize
@@ -2124,20 +2123,14 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate, SC.CollectionConte
2124
2123
  @returns {Boolean} Usually YES.
2125
2124
  */
2126
2125
  mouseDown: function(ev) {
2127
- // When the user presses the mouse down, we don't do much just yet.
2128
- // Instead, we just need to save a bunch of state about the mouse down
2129
- // so we can choose the right thing to do later.
2130
-
2131
-
2132
- // find the actual view the mouse was pressed down on. This will call
2133
- // hitTest() on item views so they can implement non-square detection
2134
- // modes. -- once we have an item view, get its content object as well.
2135
2126
  var itemView = this.itemViewForEvent(ev),
2136
2127
  content = this.get('content'),
2137
2128
  contentIndex = itemView ? itemView.get('contentIndex') : -1,
2138
- info, anchor, sel, isSelected, modifierKeyPressed,
2129
+ info, anchor, sel, isSelected, modifierKeyPressed, didSelect = NO,
2139
2130
  allowsMultipleSel = content.get('allowsMultipleSelection');
2140
-
2131
+
2132
+ if (!this.get('isEnabled')) return contentIndex > -1;
2133
+
2141
2134
  info = this.mouseDownInfo = {
2142
2135
  event: ev,
2143
2136
  itemView: itemView,
@@ -2158,11 +2151,18 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate, SC.CollectionConte
2158
2151
  isSelected = sel && sel.containsObject(itemView.get('content')) ;
2159
2152
 
2160
2153
  if (isSelected) {
2161
- this.deselect(contentIndex) ;
2154
+ this.deselect(contentIndex);
2162
2155
  } else if (!allowsMultipleSel) {
2163
- this.select(contentIndex, NO) ;
2156
+ this.select(contentIndex, NO);
2157
+ didSelect = YES;
2164
2158
  } else {
2165
- this.select(contentIndex, YES) ;
2159
+ this.select(contentIndex, YES);
2160
+ didSelect = YES;
2161
+ }
2162
+
2163
+ if (didSelect && this.get('actOnSelect')) {
2164
+ // handle actions on editing
2165
+ this._cv_performSelectAction(itemView, ev);
2166
2166
  }
2167
2167
  }
2168
2168
 
@@ -2225,20 +2225,21 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate, SC.CollectionConte
2225
2225
 
2226
2226
  /** @private */
2227
2227
  mouseUp: function(ev) {
2228
-
2229
- var view = this.itemViewForEvent(ev),
2230
- info = this.mouseDownInfo,
2231
- content = this.get('content'),
2232
- contentIndex, sel, isSelected, canEdit, itemView, idx,
2228
+ var view = this.itemViewForEvent(ev),
2229
+ info = this.mouseDownInfo,
2230
+ content = this.get('content'),
2231
+ contentIndex = view ? view.get('contentIndex') : -1,
2232
+ sel, isSelected, canEdit, itemView, idx,
2233
2233
  allowsMultipleSel = content.get('allowsMultipleSelection');
2234
-
2234
+
2235
+ if (!this.get('isEnabled')) return contentIndex > -1;
2236
+
2235
2237
  if (this.get('useToggleSelection')) {
2236
2238
  // Return if clicked outside of elements or if toggle was handled by mouseDown
2237
2239
  if (!view || this.get('selectOnMouseDown')) return NO;
2238
2240
 
2239
2241
  // determine if item is selected. If so, then go on.
2240
2242
  sel = this.get('selection') ;
2241
- contentIndex = (view) ? view.get('contentIndex') : -1 ;
2242
2243
  isSelected = sel && sel.containsObject(view.get('content')) ;
2243
2244
 
2244
2245
  if (isSelected) {
@@ -2347,12 +2348,15 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate, SC.CollectionConte
2347
2348
 
2348
2349
  /** @private */
2349
2350
  touchStart: function(touch, evt) {
2351
+ var itemView = this.itemViewForEvent(touch),
2352
+ contentIndex = itemView ? itemView.get('contentIndex') : -1;
2353
+
2354
+ if (!this.get('isEnabled')) return contentIndex > -1;
2355
+
2350
2356
  // become first responder if possible.
2351
2357
  this.becomeFirstResponder() ;
2352
2358
 
2353
2359
  if (!this.get('useToggleSelection')) {
2354
- var itemView = this.itemViewForEvent(touch);
2355
-
2356
2360
  // We're faking the selection visually here
2357
2361
  // Only track this if we added a selection so we can remove it later
2358
2362
  if (itemView && !itemView.get('isSelected')) {
@@ -2382,32 +2386,49 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate, SC.CollectionConte
2382
2386
 
2383
2387
  /** @private */
2384
2388
  touchEnd: function(touch) {
2385
- var itemView = this.itemViewForEvent(touch),
2389
+ /*
2390
+ TODO [CC] We should be using itemViewForEvent here, but because
2391
+ ListItemView re-renders itself once isSelected is called
2392
+ in touchStart, the elements attached to this event are
2393
+ getting orphaned and this event is basically a complete
2394
+ fail when using touch events.
2395
+ */
2396
+ // var itemView = this.itemViewForEvent(touch),
2397
+ var itemView = this._touchSelectedView,
2386
2398
  contentIndex = itemView ? itemView.get('contentIndex') : -1,
2387
- isSelected = NO;
2399
+ isSelected = NO, sel;
2400
+
2401
+ if (!this.get('isEnabled')) return contentIndex > -1;
2388
2402
 
2389
2403
  // Remove fake selection in case our contentIndex is -1, a select event will add it back
2390
- if (this._touchSelectedView) { this._touchSelectedView.set('isSelected', NO); }
2404
+ if (itemView) { itemView.set('isSelected', NO); }
2391
2405
 
2392
- if (this.get('useToggleSelection')) {
2393
- var sel = this.get('selection');
2394
- isSelected = sel && sel.containsObject(itemView.get('content'));
2395
- }
2406
+ if (contentIndex > -1) {
2407
+ if (this.get('useToggleSelection')) {
2408
+ sel = this.get('selection');
2409
+ isSelected = sel && sel.containsObject(itemView.get('content'));
2410
+ }
2396
2411
 
2397
- if (isSelected) {
2398
- this.deselect(contentIndex);
2399
- } else {
2400
- this.select(contentIndex, NO);
2412
+ if (isSelected) {
2413
+ this.deselect(contentIndex);
2414
+ } else {
2415
+ this.select(contentIndex, NO);
2401
2416
 
2402
- // If actOnSelect is implemented, the action will be fired.
2403
- this._cv_performSelectAction(itemView, touch, 0);
2417
+ // If actOnSelect is implemented, the action will be fired.
2418
+ this._cv_performSelectAction(itemView, touch, 0);
2419
+ }
2404
2420
  }
2421
+
2422
+ this._touchSelectedView = null;
2405
2423
  },
2406
2424
 
2407
2425
  /** @private */
2408
2426
  touchCancelled: function(evt) {
2409
2427
  // Remove fake selection
2410
- if (this._touchSelectedView) { this._touchSelectedView.set('isSelected', NO); }
2428
+ if (this._touchSelectedView) {
2429
+ this._touchSelectedView.set('isSelected', NO);
2430
+ this._touchSelectedView = null;
2431
+ }
2411
2432
  },
2412
2433
 
2413
2434
  /** @private */