sproutcore 1.6.0.beta.3-java → 1.6.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (633) hide show
  1. data/CHANGELOG +70 -0
  2. data/{History.txt → History.rdoc} +0 -0
  3. data/{README.txt → README.rdoc} +3 -2
  4. data/Rakefile +213 -10
  5. data/{Todo.txt → Todo.rdoc} +0 -0
  6. data/VERSION.yml +1 -1
  7. data/bin/sc-docs +6 -1
  8. data/lib/Buildfile +5 -1
  9. data/lib/buildtasks/manifest.rake +14 -1
  10. data/lib/buildtasks/target.rake +20 -23
  11. data/lib/frameworks/sproutcore/Buildfile +8 -3
  12. data/lib/frameworks/sproutcore/CHANGELOG.md +364 -1
  13. data/lib/frameworks/sproutcore/README.md +1 -1
  14. data/lib/frameworks/sproutcore/apps/test_controls/controllers/select.js +12 -0
  15. data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +19 -5
  16. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +9 -0
  17. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +243 -199
  18. data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +250 -172
  19. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +29 -0
  20. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +5 -0
  21. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +21 -1
  22. data/lib/frameworks/sproutcore/frameworks/core_foundation/controls/button.js +6 -2
  23. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +2 -42
  24. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +38 -15
  25. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +6 -4
  26. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +1 -1
  27. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +11 -6
  28. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +55 -20
  29. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +2 -0
  30. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +26 -20
  31. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +37 -21
  32. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +2 -7
  33. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +7 -7
  34. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +157 -5
  35. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +2 -2
  36. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +7 -6
  37. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +29 -15
  39. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +8 -8
  40. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +162 -1
  41. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +3 -56
  42. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +24 -8
  43. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +42 -0
  44. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +59 -0
  45. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controls/button.js +39 -57
  46. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +41 -1
  47. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +19 -2
  48. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +16 -1
  49. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +5 -3
  50. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +32 -0
  51. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +135 -0
  52. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +29 -18
  53. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -0
  54. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +18 -2
  55. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +10 -6
  56. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +414 -1
  57. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view.js +1 -1
  58. data/lib/frameworks/sproutcore/frameworks/core_foundation/{system → views}/bindable_span.js +2 -1
  59. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +112 -40
  60. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +13 -7
  61. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +2 -1
  62. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +245 -67
  63. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +17 -9
  64. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +8 -18
  65. data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +8 -2
  66. data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +1 -1
  67. data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +1 -1
  68. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +15 -8
  69. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +12 -2
  70. data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +296 -0
  71. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +3 -3
  72. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +330 -326
  73. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -1
  74. data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +26 -5
  75. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +1 -1
  76. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +69 -58
  77. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +614 -614
  78. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/data_source.js +203 -0
  79. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +3 -1
  80. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +44 -0
  81. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +2 -0
  82. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +2 -0
  83. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +20 -13
  84. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +76 -47
  85. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +30 -30
  86. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +74 -53
  87. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +0 -1
  88. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +24 -24
  89. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/connectDataSource.js +31 -0
  90. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +1177 -0
  91. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +212 -182
  92. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +6 -67
  93. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +1 -1
  94. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
  95. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
  96. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +13 -15
  97. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +41 -12
  98. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +9 -0
  99. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +6 -3
  100. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +3 -3
  101. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +3 -3
  102. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +1 -1
  103. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +1 -1
  104. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +1 -1
  105. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +1 -1
  106. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +1 -1
  107. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +3 -2
  108. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +12 -2
  109. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +1 -1
  110. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +1 -1
  111. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +1 -1
  112. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +1 -1
  113. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +2 -2
  114. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +1 -1
  115. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -1
  116. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +1 -1
  117. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +1 -1
  118. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +1 -1
  119. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +1 -1
  120. data/lib/frameworks/sproutcore/frameworks/desktop/resources/alert.css +49 -0
  121. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/a_sample_image.jpg +0 -0
  122. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/apple-logo1.jpeg +0 -0
  123. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/iframe.html +0 -0
  124. data/lib/frameworks/sproutcore/frameworks/desktop/resources/disclosure.css +20 -0
  125. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/drag.css +1 -1
  126. data/lib/frameworks/sproutcore/frameworks/desktop/resources/icons.css +214 -0
  127. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/cap.png +0 -0
  128. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/downbutton.png +0 -0
  129. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-16.png +0 -0
  130. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-24.png +0 -0
  131. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-48.png +0 -0
  132. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-bookmark-16.png +0 -0
  133. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-bookmark-24.png +0 -0
  134. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-cancel-24.png +0 -0
  135. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-document-16.png +0 -0
  136. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-document-24.png +0 -0
  137. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-down-24.png +0 -0
  138. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
  139. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-favorite-16.png +0 -0
  140. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-favorite-24.png +0 -0
  141. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-folder-16.png +0 -0
  142. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-folder-24.png +0 -0
  143. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-group-16.png +0 -0
  144. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-group-24.png +0 -0
  145. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-help-16.png +0 -0
  146. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-help-24.png +0 -0
  147. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-16.png +0 -0
  148. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-24.png +0 -0
  149. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-48.png +0 -0
  150. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-left-24.png +0 -0
  151. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-options-16.png +0 -0
  152. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-options-24.png +0 -0
  153. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-redo-24.png +0 -0
  154. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-right-24.png +0 -0
  155. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-tools-24.png +0 -0
  156. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-trash-16.png +0 -0
  157. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-trash-24.png +0 -0
  158. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-undo-24.png +0 -0
  159. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-up-24.png +0 -0
  160. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-user-16.png +0 -0
  161. data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-user-24.png +0 -0
  162. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-bottom.png +0 -0
  163. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-center.png +0 -0
  164. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-top.png +0 -0
  165. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/track.png +0 -0
  166. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/upbutton.png +0 -0
  167. data/lib/frameworks/sproutcore/frameworks/desktop/resources/list_item.css +145 -0
  168. data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu.css +10 -0
  169. data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu_item_view.css +88 -0
  170. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/modal.css +3 -4
  171. data/lib/frameworks/sproutcore/frameworks/desktop/resources/panel.css +91 -0
  172. data/lib/frameworks/sproutcore/frameworks/desktop/resources/picker.css +37 -0
  173. data/lib/frameworks/sproutcore/frameworks/desktop/resources/progress.css +29 -0
  174. data/lib/frameworks/sproutcore/frameworks/desktop/resources/radio.css +11 -0
  175. data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +122 -0
  176. data/lib/frameworks/sproutcore/frameworks/desktop/resources/separator.css +20 -0
  177. data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +34 -0
  178. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/split.css +0 -0
  179. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/split_divider.css +0 -0
  180. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/tab.css +0 -0
  181. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/toolbar.css +0 -0
  182. data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/touch-scroller.css +13 -13
  183. data/lib/frameworks/sproutcore/frameworks/desktop/resources/well.css +65 -0
  184. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +58 -23
  185. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +20 -1
  186. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +121 -103
  187. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +34 -7
  188. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/static_content.js +3 -2
  189. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +1 -3
  190. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +20 -1
  191. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +14 -15
  192. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +43 -16
  193. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +717 -700
  194. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +2 -2
  195. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +11 -1
  196. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +16 -6
  197. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +4 -7
  198. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +0 -1
  199. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +49 -7
  200. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +9 -2
  201. data/lib/frameworks/sproutcore/frameworks/desktop/{panes → views}/select_button.js +52 -0
  202. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +7 -3
  203. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +4 -26
  204. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +46 -49
  205. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +20 -19
  206. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
  207. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +249 -249
  208. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/edit_mode.js +13 -5
  209. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/emptiness.js +53 -37
  210. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form.js +2 -1
  211. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form_row.js +3 -11
  212. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/edit_mode.js +53 -0
  213. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/emptiness.js +114 -0
  214. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form.js +174 -6
  215. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_row.js +86 -6
  216. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +98 -126
  217. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form_row.js +96 -97
  218. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +2 -1
  219. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +20 -36
  220. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +121 -0
  221. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +90 -0
  222. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/mixins/select_view_menu.js +139 -0
  223. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/render_delegates/select_button.js +14 -0
  224. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/ext/menu_resizing.js +25 -0
  225. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/bindings.js +43 -0
  226. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/check_selected.js +32 -0
  227. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/menu_setup.js +40 -0
  228. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/show_menu.js +45 -0
  229. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/menu_width.js +49 -0
  230. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/selected_item.js +191 -0
  231. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +264 -0
  232. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +450 -0
  233. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +14 -6
  234. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +1 -1
  235. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split.js +1 -1
  236. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split_divider.js +1 -1
  237. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +9 -0
  238. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +3 -2
  239. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +2 -2
  240. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +16 -19
  241. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +4 -7
  242. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +1 -1
  243. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +85 -16
  244. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
  245. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +1 -1
  246. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +1 -1
  247. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +1 -1
  248. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +4 -2
  249. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +2 -0
  250. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +1 -1
  251. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +1 -1
  252. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +13 -13
  253. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/benchmark.css +0 -0
  254. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/blank.gif +0 -0
  255. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/bootstrap.rhtml +0 -0
  256. data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +36 -0
  257. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/checkbox_view.css +0 -0
  258. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/debug/control-test-pane.css +0 -0
  259. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/favicon.ico +0 -0
  260. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-logo.png +0 -0
  261. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-landscape.jpg +0 -0
  262. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-landscape.png +0 -0
  263. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-portrait.jpg +0 -0
  264. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-portrait.png +0 -0
  265. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup.png +0 -0
  266. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore.png +0 -0
  267. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/inline_editor.css +0 -0
  268. data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +47 -0
  269. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/radio_view.css +0 -0
  270. data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/static_layout.css +1 -1
  271. data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +125 -0
  272. data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +5 -1
  273. data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +4 -2
  274. data/lib/frameworks/sproutcore/frameworks/foundation/system/math.js +2 -1
  275. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +13 -0
  276. data/lib/frameworks/sproutcore/frameworks/foundation/system/string.js +0 -43
  277. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +11 -11
  278. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +912 -0
  279. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +23 -0
  280. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +36 -7
  281. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +58 -4
  282. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +4 -4
  283. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +1 -3
  284. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +17 -6
  285. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +0 -15
  286. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +3 -3
  287. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +30 -19
  288. data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1 -1
  289. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +2 -76
  290. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +3348 -1591
  291. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +6 -3
  292. data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +11 -0
  293. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +38 -12
  294. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/flatten.js +24 -0
  295. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +2 -1
  296. data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +5 -5
  297. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +21 -2
  298. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +3 -2
  299. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +1 -1
  300. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1 -1
  301. data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +2 -2
  302. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +14 -14
  303. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +4 -1
  304. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +0 -3
  305. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +4 -4
  306. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +4 -4
  307. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
  308. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +3 -3
  309. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +15 -16
  310. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +6 -2
  311. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +10 -5
  312. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/requiredObjectForPropertyPath.js +29 -0
  313. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +98 -0
  314. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +30 -0
  315. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +17 -0
  316. data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +4 -73
  317. data/lib/frameworks/sproutcore/frameworks/statechart/debug/sequence_matcher.js +189 -0
  318. data/lib/frameworks/sproutcore/frameworks/statechart/ext/function.js +122 -0
  319. data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +88 -0
  320. data/lib/frameworks/sproutcore/frameworks/statechart/system/empty_state.js +34 -0
  321. data/lib/frameworks/sproutcore/frameworks/statechart/system/history_state.js +97 -0
  322. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +16 -191
  323. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +17 -79
  324. data/lib/frameworks/sproutcore/frameworks/statechart/tests/debug/sequence_matcher.js +464 -0
  325. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +31 -11
  326. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/with_concurrent_states.js +6 -4
  327. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/advanced.js +40 -6
  328. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/basic.js +22 -2
  329. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/intermediate.js +44 -3
  330. data/lib/frameworks/sproutcore/frameworks/testing/core.js +61 -9
  331. data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/additions.css +0 -0
  332. data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/runner.css +10 -2
  333. data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/testsuite.css +0 -0
  334. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +66 -27
  335. data/lib/frameworks/sproutcore/frameworks/testing/tests/spy_on.js +41 -0
  336. data/lib/frameworks/sproutcore/frameworks/testing/tests/stub_method.js +9 -0
  337. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +80 -0
  338. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/core.css +20 -0
  339. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/fonts.css +39 -0
  340. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +126 -0
  341. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +57 -0
  342. data/lib/frameworks/sproutcore/lib/index.rhtml +8 -4
  343. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
  344. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
  345. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
  346. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
  347. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
  348. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
  349. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
  350. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
  351. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
  352. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
  353. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
  354. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
  355. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
  356. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
  357. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
  358. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
  359. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
  360. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
  361. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
  362. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
  363. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
  364. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
  365. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
  366. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
  367. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
  368. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +13 -4
  369. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +16 -14
  370. data/lib/frameworks/sproutcore/themes/ace/resources/form/form.css +9 -0
  371. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +3 -1
  372. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
  373. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +1 -1
  374. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +1 -1
  375. data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +1 -1
  376. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +1 -1
  377. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/panel.js +1 -1
  378. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +2 -0
  379. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +1 -1
  380. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/well.js +1 -1
  381. data/lib/gen/app/templates/apps/@target_name@/Buildfile +1 -4
  382. data/lib/gen/app/templates/apps/@target_name@/core.js +1 -4
  383. data/lib/gen/app/templates/apps/@target_name@/main.js +1 -4
  384. data/lib/gen/app/templates/apps/@target_name@/resources/main_page.js +1 -4
  385. data/lib/gen/app/templates/apps/@target_name@/theme.js +1 -4
  386. data/lib/gen/controller/templates/controllers/{@filename@.js → @filename@_controller.js} +1 -4
  387. data/lib/gen/controller/templates/tests/controllers/{@filename@.js → @filename@_test.js} +1 -4
  388. data/lib/gen/data-source/templates/data_sources/{@filename@.js → @filename@_data_source.js} +1 -4
  389. data/lib/gen/design/templates/resources/@filename@.js +1 -4
  390. data/lib/gen/framework/templates/frameworks/@target_name@/core.js +1 -4
  391. data/lib/gen/framework/templates/frameworks/@target_name@/english.lproj/strings.js +1 -4
  392. data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +1 -4
  393. data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +2 -0
  394. data/lib/gen/html_project/templates/@filename@/Buildfile +1 -4
  395. data/lib/gen/html_project/templates/@filename@/README +1 -4
  396. data/lib/gen/language/Buildfile +1 -1
  397. data/lib/gen/language/templates/@filename@/strings.js +1 -4
  398. data/lib/gen/model/templates/fixtures/{@filename@.js → @filename@_fixtures.js} +2 -5
  399. data/lib/gen/model/templates/models/{@filename@.js → @filename@_model.js} +1 -4
  400. data/lib/gen/model/templates/tests/models/{@filename@.js → @filename@_test.js} +1 -4
  401. data/lib/gen/page/templates/pages/@target_name@/Buildfile +1 -4
  402. data/lib/gen/page/templates/pages/@target_name@/core.js +1 -4
  403. data/lib/gen/page/templates/pages/@target_name@/en.lproj/strings.js +1 -4
  404. data/lib/gen/page/templates/pages/@target_name@/resources/body.css +3 -1
  405. data/lib/gen/project/templates/@filename@/Buildfile +1 -4
  406. data/lib/gen/project/templates/@filename@/README +1 -5
  407. data/lib/gen/responder/templates/states/{@filename@.js → @filename@_state.js} +1 -4
  408. data/lib/gen/test/templates/tests/{@filename@.js → @filename@_test.js} +1 -4
  409. data/lib/gen/theme/templates/themes/@target_name@/resources/theme_styles.css +1 -5
  410. data/lib/gen/theme/templates/themes/@target_name@/theme.js +1 -4
  411. data/lib/gen/view/templates/tests/views/{@filename@.js → @filename@_test.js} +1 -4
  412. data/lib/gen/view/templates/views/{@filename@.js → @filename@_view.js} +1 -4
  413. data/lib/sproutcore.rb +5 -15
  414. data/lib/sproutcore/builders/base.rb +5 -1
  415. data/lib/sproutcore/builders/handlebars.rb +12 -1
  416. data/lib/sproutcore/builders/module.rb +2 -2
  417. data/lib/sproutcore/buildfile/string_ext.rb +0 -4
  418. data/lib/sproutcore/helpers/cssmin.rb +44 -59
  419. data/lib/sproutcore/helpers/static_helper.rb +4 -2
  420. data/lib/sproutcore/helpers/text_helper.rb +11 -13
  421. data/lib/sproutcore/models/generator.rb +22 -0
  422. data/lib/sproutcore/models/manifest.rb +4 -4
  423. data/lib/sproutcore/models/manifest_entry.rb +1 -0
  424. data/lib/sproutcore/models/target.rb +3 -107
  425. data/lib/sproutcore/rack.rb +0 -1
  426. data/lib/sproutcore/rack/builder.rb +3 -0
  427. data/lib/sproutcore/rack/dev.rb +0 -1
  428. data/lib/sproutcore/rack/proxy.rb +240 -93
  429. data/lib/sproutcore/rack/service.rb +1 -1
  430. data/lib/sproutcore/render_engines/haml.rb +2 -5
  431. data/lib/sproutcore/tools.rb +11 -11
  432. data/lib/sproutcore/tools/build.rb +2 -0
  433. data/lib/sproutcore/tools/docs.rb +2 -37
  434. data/lib/sproutcore/tools/init.rb +10 -22
  435. data/lib/sproutcore/tools/manifest.rb +21 -22
  436. data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +21 -1
  437. data/spec/buildtasks/target_spec.rb +9 -0
  438. data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -0
  439. data/spec/fixtures/builder_tests/apps/handlebars_test/{template.handlebars → templates/template.handlebars} +2 -0
  440. data/{lib/doc_templates/sproutcore/allclasses.tmpl → spec/fixtures/ordered_entries/apps/template_style/a.js} +0 -0
  441. data/spec/fixtures/{real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER → ordered_entries/apps/template_style/template_style.js} +0 -0
  442. data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +1 -1
  443. data/spec/lib/builders/handlebars_spec.rb +10 -4
  444. data/spec/lib/buildfile_commands/build_task_spec.rb +1 -1
  445. data/spec/lib/tools/manifest_spec.rb +11 -0
  446. data/sproutcore.gemspec +8 -7
  447. data/vendor/chance/lib/chance/instance.rb +8 -9
  448. metadata +167 -266
  449. data/lib/doc_templates/jsdoc/allclasses.tmpl +0 -17
  450. data/lib/doc_templates/jsdoc/allfiles.tmpl +0 -56
  451. data/lib/doc_templates/jsdoc/class.tmpl +0 -487
  452. data/lib/doc_templates/jsdoc/index.tmpl +0 -38
  453. data/lib/doc_templates/jsdoc/publish.js +0 -170
  454. data/lib/doc_templates/jsdoc/static/default.css +0 -162
  455. data/lib/doc_templates/jsdoc/static/header.html +0 -2
  456. data/lib/doc_templates/jsdoc/static/index.html +0 -19
  457. data/lib/doc_templates/jsdoc/symbol.tmpl +0 -35
  458. data/lib/doc_templates/sproutcore/allfiles.tmpl +0 -56
  459. data/lib/doc_templates/sproutcore/class.tmpl +0 -674
  460. data/lib/doc_templates/sproutcore/classes-json.tmpl +0 -55
  461. data/lib/doc_templates/sproutcore/index.tmpl +0 -62
  462. data/lib/doc_templates/sproutcore/publish.js +0 -346
  463. data/lib/doc_templates/sproutcore/static/default.css +0 -258
  464. data/lib/doc_templates/sproutcore/static/header.html +0 -2
  465. data/lib/doc_templates/sproutcore/static/index.html +0 -19
  466. data/lib/doc_templates/sproutcore/symbol.tmpl +0 -35
  467. data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/core.css +0 -378
  468. data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/view.css +0 -57
  469. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +0 -56
  470. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +0 -73
  471. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +0 -916
  472. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
  473. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +0 -185
  474. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +0 -12
  475. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +0 -101
  476. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +0 -91
  477. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +0 -35
  478. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +0 -33
  479. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +0 -10
  480. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +0 -132
  481. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +0 -19
  482. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +0 -69
  483. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +0 -14
  484. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/well.css +0 -71
  485. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/default_styles.css +0 -5
  486. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/strings.js +0 -15
  487. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_checkbox_field.js +0 -17
  488. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_field.js +0 -17
  489. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_label.js +0 -17
  490. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_radio_field.js +0 -17
  491. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_text_field.js +0 -17
  492. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +0 -40
  493. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
  494. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +0 -47
  495. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +0 -146
  496. data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +0 -55
  497. data/lib/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +0 -69
  498. data/lib/sproutcore/rack/docs.rb +0 -24
  499. data/vendor/jsdoc/README.txt +0 -151
  500. data/vendor/jsdoc/app/frame.js +0 -33
  501. data/vendor/jsdoc/app/frame/Chain.js +0 -102
  502. data/vendor/jsdoc/app/frame/Dumper.js +0 -144
  503. data/vendor/jsdoc/app/frame/Hash.js +0 -47
  504. data/vendor/jsdoc/app/frame/Link.js +0 -142
  505. data/vendor/jsdoc/app/frame/Namespace.js +0 -10
  506. data/vendor/jsdoc/app/frame/Opt.js +0 -134
  507. data/vendor/jsdoc/app/frame/Reflection.js +0 -26
  508. data/vendor/jsdoc/app/frame/String.js +0 -93
  509. data/vendor/jsdoc/app/frame/Testrun.js +0 -129
  510. data/vendor/jsdoc/app/handlers/FOODOC.js +0 -26
  511. data/vendor/jsdoc/app/handlers/XMLDOC.js +0 -26
  512. data/vendor/jsdoc/app/handlers/XMLDOC/DomReader.js +0 -159
  513. data/vendor/jsdoc/app/handlers/XMLDOC/XMLDoc.js +0 -16
  514. data/vendor/jsdoc/app/handlers/XMLDOC/XMLParse.js +0 -292
  515. data/vendor/jsdoc/app/lib/JSDOC.js +0 -98
  516. data/vendor/jsdoc/app/lib/JSDOC/DocComment.js +0 -200
  517. data/vendor/jsdoc/app/lib/JSDOC/DocTag.js +0 -294
  518. data/vendor/jsdoc/app/lib/JSDOC/JsDoc.js +0 -162
  519. data/vendor/jsdoc/app/lib/JSDOC/JsPlate.js +0 -100
  520. data/vendor/jsdoc/app/lib/JSDOC/Lang.js +0 -144
  521. data/vendor/jsdoc/app/lib/JSDOC/Parser.js +0 -109
  522. data/vendor/jsdoc/app/lib/JSDOC/PluginManager.js +0 -33
  523. data/vendor/jsdoc/app/lib/JSDOC/Symbol.js +0 -681
  524. data/vendor/jsdoc/app/lib/JSDOC/SymbolSet.js +0 -226
  525. data/vendor/jsdoc/app/lib/JSDOC/TextStream.js +0 -41
  526. data/vendor/jsdoc/app/lib/JSDOC/Token.js +0 -18
  527. data/vendor/jsdoc/app/lib/JSDOC/TokenReader.js +0 -332
  528. data/vendor/jsdoc/app/lib/JSDOC/TokenStream.js +0 -133
  529. data/vendor/jsdoc/app/lib/JSDOC/Util.js +0 -32
  530. data/vendor/jsdoc/app/lib/JSDOC/Walker.js +0 -453
  531. data/vendor/jsdoc/app/main.js +0 -74
  532. data/vendor/jsdoc/app/plugins/commentSrcJson.js +0 -19
  533. data/vendor/jsdoc/app/plugins/frameworkPrototype.js +0 -16
  534. data/vendor/jsdoc/app/plugins/functionCall.js +0 -10
  535. data/vendor/jsdoc/app/plugins/publishSrcHilite.js +0 -62
  536. data/vendor/jsdoc/app/plugins/sproutcoreTags.js +0 -26
  537. data/vendor/jsdoc/app/plugins/symbolLink.js +0 -9
  538. data/vendor/jsdoc/app/plugins/tagParamConfig.js +0 -31
  539. data/vendor/jsdoc/app/plugins/tagSynonyms.js +0 -43
  540. data/vendor/jsdoc/app/run.js +0 -346
  541. data/vendor/jsdoc/app/t/TestDoc.js +0 -144
  542. data/vendor/jsdoc/app/t/runner.js +0 -13
  543. data/vendor/jsdoc/app/test.js +0 -304
  544. data/vendor/jsdoc/app/test/addon.js +0 -24
  545. data/vendor/jsdoc/app/test/anon_inner.js +0 -14
  546. data/vendor/jsdoc/app/test/augments.js +0 -31
  547. data/vendor/jsdoc/app/test/augments2.js +0 -26
  548. data/vendor/jsdoc/app/test/borrows.js +0 -41
  549. data/vendor/jsdoc/app/test/borrows2.js +0 -23
  550. data/vendor/jsdoc/app/test/config.js +0 -22
  551. data/vendor/jsdoc/app/test/constructs.js +0 -18
  552. data/vendor/jsdoc/app/test/encoding.js +0 -10
  553. data/vendor/jsdoc/app/test/encoding_other.js +0 -12
  554. data/vendor/jsdoc/app/test/functions_anon.js +0 -39
  555. data/vendor/jsdoc/app/test/functions_nested.js +0 -33
  556. data/vendor/jsdoc/app/test/global.js +0 -13
  557. data/vendor/jsdoc/app/test/globals.js +0 -25
  558. data/vendor/jsdoc/app/test/ignore.js +0 -10
  559. data/vendor/jsdoc/app/test/inner.js +0 -16
  560. data/vendor/jsdoc/app/test/jsdoc_test.js +0 -477
  561. data/vendor/jsdoc/app/test/lend.js +0 -33
  562. data/vendor/jsdoc/app/test/memberof.js +0 -20
  563. data/vendor/jsdoc/app/test/memberof_constructor.js +0 -15
  564. data/vendor/jsdoc/app/test/name.js +0 -19
  565. data/vendor/jsdoc/app/test/namespace_nested.js +0 -23
  566. data/vendor/jsdoc/app/test/nocode.js +0 -13
  567. data/vendor/jsdoc/app/test/oblit_anon.js +0 -20
  568. data/vendor/jsdoc/app/test/overview.js +0 -20
  569. data/vendor/jsdoc/app/test/param_inline.js +0 -37
  570. data/vendor/jsdoc/app/test/params_optional.js +0 -8
  571. data/vendor/jsdoc/app/test/prototype.js +0 -17
  572. data/vendor/jsdoc/app/test/prototype_nested.js +0 -9
  573. data/vendor/jsdoc/app/test/prototype_oblit.js +0 -13
  574. data/vendor/jsdoc/app/test/prototype_oblit_constructor.js +0 -24
  575. data/vendor/jsdoc/app/test/public.js +0 -10
  576. data/vendor/jsdoc/app/test/shared.js +0 -42
  577. data/vendor/jsdoc/app/test/shared2.js +0 -2
  578. data/vendor/jsdoc/app/test/shortcuts.js +0 -22
  579. data/vendor/jsdoc/app/test/static_this.js +0 -13
  580. data/vendor/jsdoc/app/test/synonyms.js +0 -23
  581. data/vendor/jsdoc/app/test/tosource.js +0 -23
  582. data/vendor/jsdoc/app/test/variable_redefine.js +0 -14
  583. data/vendor/jsdoc/changes.txt +0 -47
  584. data/vendor/jsdoc/conf/sample.conf +0 -31
  585. data/vendor/jsdoc/java/build.xml +0 -36
  586. data/vendor/jsdoc/java/build_1.4.xml +0 -36
  587. data/vendor/jsdoc/java/classes/js.jar +0 -0
  588. data/vendor/jsdoc/java/src/JsDebugRun.java +0 -21
  589. data/vendor/jsdoc/java/src/JsRun.java +0 -21
  590. data/vendor/jsdoc/jsdebug.jar +0 -0
  591. data/vendor/jsdoc/jsrun.jar +0 -0
  592. data/vendor/jsdoc/t/TestDoc.js +0 -144
  593. data/vendor/jsdoc/t/runner.js +0 -13
  594. data/vendor/jsdoc/test.js +0 -304
  595. data/vendor/jsdoc/test/addon.js +0 -24
  596. data/vendor/jsdoc/test/anon_inner.js +0 -14
  597. data/vendor/jsdoc/test/augments.js +0 -31
  598. data/vendor/jsdoc/test/augments2.js +0 -26
  599. data/vendor/jsdoc/test/borrows.js +0 -41
  600. data/vendor/jsdoc/test/borrows2.js +0 -23
  601. data/vendor/jsdoc/test/config.js +0 -22
  602. data/vendor/jsdoc/test/constructs.js +0 -18
  603. data/vendor/jsdoc/test/encoding.js +0 -10
  604. data/vendor/jsdoc/test/encoding_other.js +0 -12
  605. data/vendor/jsdoc/test/functions_anon.js +0 -39
  606. data/vendor/jsdoc/test/functions_nested.js +0 -33
  607. data/vendor/jsdoc/test/global.js +0 -13
  608. data/vendor/jsdoc/test/globals.js +0 -25
  609. data/vendor/jsdoc/test/ignore.js +0 -10
  610. data/vendor/jsdoc/test/inner.js +0 -16
  611. data/vendor/jsdoc/test/jsdoc_test.js +0 -477
  612. data/vendor/jsdoc/test/lend.js +0 -33
  613. data/vendor/jsdoc/test/memberof.js +0 -20
  614. data/vendor/jsdoc/test/memberof_constructor.js +0 -15
  615. data/vendor/jsdoc/test/name.js +0 -19
  616. data/vendor/jsdoc/test/namespace_nested.js +0 -23
  617. data/vendor/jsdoc/test/nocode.js +0 -13
  618. data/vendor/jsdoc/test/oblit_anon.js +0 -20
  619. data/vendor/jsdoc/test/overview.js +0 -20
  620. data/vendor/jsdoc/test/param_inline.js +0 -37
  621. data/vendor/jsdoc/test/params_optional.js +0 -8
  622. data/vendor/jsdoc/test/prototype.js +0 -17
  623. data/vendor/jsdoc/test/prototype_nested.js +0 -9
  624. data/vendor/jsdoc/test/prototype_oblit.js +0 -13
  625. data/vendor/jsdoc/test/prototype_oblit_constructor.js +0 -24
  626. data/vendor/jsdoc/test/public.js +0 -10
  627. data/vendor/jsdoc/test/shared.js +0 -42
  628. data/vendor/jsdoc/test/shared2.js +0 -2
  629. data/vendor/jsdoc/test/shortcuts.js +0 -22
  630. data/vendor/jsdoc/test/static_this.js +0 -13
  631. data/vendor/jsdoc/test/synonyms.js +0 -23
  632. data/vendor/jsdoc/test/tosource.js +0 -23
  633. data/vendor/jsdoc/test/variable_redefine.js +0 -14
@@ -15,14 +15,7 @@
15
15
  @extends SC.Control
16
16
  @since SproutCore 1.0
17
17
  */
18
- SC.WebView = SC.View.extend(SC.Control,
19
- /** @scope SC.WebView.prototype */ {
20
-
21
- /**
22
- @type Array
23
- @default ['sc-web-view']
24
- @see SC.View#classNames
25
- */
18
+ SC.WebView = SC.View.extend(SC.Control, {/** @scope SC.WebView.prototype */
26
19
  classNames: 'sc-web-view',
27
20
 
28
21
  /**
@@ -44,22 +37,29 @@ SC.WebView = SC.View.extend(SC.Control,
44
37
  */
45
38
  shouldAutoResize: NO,
46
39
 
47
- /** @private */
40
+ /**
41
+ @param {SC.RenderContext} context
42
+ @param {Boolean} firstTime
43
+ */
48
44
  render: function(context, firstTime) {
49
- var src = this.get('value');
45
+ var src = this.get('value'), iframe;
46
+
50
47
  if (firstTime) {
51
48
  context.push('<iframe src="' + src +
52
49
  '" style="position: absolute; width: 100%; height: 100%; border: 0px; margin: 0px; padding: 0px;"></iframe>');
53
- } else {
54
- var iframe = this.$('iframe');
50
+ }
51
+ else if(src!==this._lastSrc) {
52
+ iframe = this.$('iframe');
55
53
  // clear out the previous src, to force a reload
56
54
  iframe.attr('src', 'javascript:;');
57
55
  iframe.attr('src', src);
58
56
  }
57
+
58
+ this._lastSrc = src;
59
59
  },
60
60
 
61
- /** @private
62
- Called when the layer gets created.
61
+ /**
62
+ Called when the layer gets created.
63
63
  */
64
64
  didCreateLayer: function() {
65
65
  var f = this.$('iframe');
@@ -78,20 +78,21 @@ SC.WebView = SC.View.extend(SC.Control,
78
78
  */
79
79
  iframeDidLoad: function() {
80
80
  //fit the iframe to size of the contents.
81
- if (this.get('shouldAutoResize') === YES){
81
+ if (this.get('shouldAutoResize') === YES) {
82
82
  var contentWindow;
83
83
  var iframeElt = this.$('iframe')[0];
84
- if(iframeElt && iframeElt.contentWindow){
84
+ if(iframeElt && iframeElt.contentWindow) {
85
85
  contentWindow = iframeElt.contentWindow;
86
86
  if(contentWindow && contentWindow.document && contentWindow.document.documentElement){
87
87
  var docElement = contentWindow.document.documentElement;
88
88
  // setting the width before the height gives more accurate results..
89
89
  // atleast for the test iframe content i'm using.
90
90
  //TODO: try out document flows other than top to bottom.
91
- if (!SC.browser.isIE){
91
+ if (!SC.browser.isIE) {
92
92
  this.$().width(docElement.scrollWidth);
93
- this.$().height(docElement.scrollHeight);
94
- } else {
93
+ this.$().height(docElement.scrollHeight);
94
+ }
95
+ else {
95
96
  this.$().width(docElement.scrollWidth + 12);
96
97
  this.$().height(docElement.scrollHeight + 5);
97
98
  }
@@ -6,3 +6,5 @@ config :greenhouse,
6
6
  :required => [:sproutcore, :designer, :statechart],
7
7
  :theme => :ace,
8
8
  :css_theme => 'ace.greenhouse'
9
+
10
+ config :polymorphism, :required => :datastore
@@ -14,21 +14,21 @@ sc_require('views/high_light');
14
14
  a view in the UI. When your app loads in `design.mode`, a peer Designer
15
15
  instance is created for every view using the class method Designer or
16
16
  `SC.ViewDesigner` if the view class does not define a Designer class.
17
-
17
+
18
18
  Whenever you put your app into design mode, all events will be routed first
19
- to the peer designer for an object, which will have an opportunity to
19
+ to the peer designer for an object, which will have an opportunity to
20
20
  prosent a design UI.
21
21
 
22
- Likewise, the designer palettes provided by the view builder will focus on
22
+ Likewise, the designer palettes provided by the view builder will focus on
23
23
  the designer instead of the view itself.
24
-
24
+
25
25
  ## Designer UI
26
-
26
+
27
27
  The basic ViewDesigner class automatically handles the UI interaction for
28
28
  layout. You can also double click on the view to perform a default action.
29
-
29
+
30
30
  For views with `isContainerView` set to `YES`, double clicking on the view will
31
- automatically "focus" the view. This allows you to select the view's
31
+ automatically "focus" the view. This allows you to select the view's
32
32
  children instead of the view itself.
33
33
 
34
34
  @extends SC.Object
@@ -39,148 +39,148 @@ SC.ViewDesigner = SC.Object.extend(
39
39
 
40
40
  /** The view managed by this designer. */
41
41
  view: null,
42
-
42
+
43
43
  /** The class for the design. Set when the view is created. */
44
44
  viewClass: null,
45
-
45
+
46
46
  /** Set to YES if the view is currently selected for editing. */
47
47
  designIsSelected: NO,
48
48
 
49
49
  /** Set to YES if this particular designer should not be enabled. */
50
50
  designIsEnabled: YES,
51
-
51
+
52
52
  /**
53
53
  The current page. Comes from the view.
54
-
54
+
55
55
  @property {SC.Page}
56
56
  */
57
57
  page: function() {
58
58
  var v = this.get('view');
59
59
  return (v) ? v.get('page') : null;
60
60
  }.property('view').cacheable(),
61
-
61
+
62
62
  /**
63
63
  The design controller from the page. Comes from page
64
-
64
+
65
65
  @property {SC.PageDesignController}
66
66
  */
67
67
  designController: function() {
68
68
  var p = this.get('page');
69
- return (p) ? p.get('designController') : null ;
69
+ return (p) ? p.get('designController') : null ;
70
70
  }.property('page').cacheable(),
71
-
72
- /**
71
+
72
+ /**
73
73
  If set to NO, the default childView encoding will not run. You can use
74
74
  this option, for example, if your view creates its own childViews.
75
-
75
+
76
76
  Alternatively, you can override the `encodeChildViewsDesign()` and
77
77
  `encodeChildViewsLoc()` methods.
78
-
78
+
79
79
  @property {Boolean}
80
80
  */
81
81
  encodeChildViews: YES,
82
-
82
+
83
83
  concatenatedProperties: ['designProperties', 'localizedProperties', 'excludeProperties'],
84
84
 
85
85
 
86
86
  // ..........................................................
87
87
  // SIZE AND POSITIONING SUPPORT
88
- //
89
-
88
+ //
89
+
90
90
  /**
91
91
  Set to `NO` to hide horizontal resize handles
92
92
  */
93
93
  canResizeHorizontal: YES,
94
-
94
+
95
95
  /**
96
96
  Set to `NO` to resize vertical handles
97
97
  */
98
98
  canResizeVertical: YES,
99
-
99
+
100
100
  /**
101
101
  Allows moving.
102
102
  */
103
103
  canReposition: YES,
104
-
104
+
105
105
  /**
106
106
  Determines the minimum allowed width
107
107
  */
108
108
  minWidth: 10,
109
-
109
+
110
110
  /**
111
111
  Determines the minimum allowed height
112
112
  */
113
113
  minHeight: 10,
114
-
114
+
115
115
  /**
116
116
  Determines maximum allowed width. `null` means no limit
117
117
  */
118
118
  maxWidth: 100000000,
119
-
119
+
120
120
  /**
121
121
  Determines maximum allowed height. `null` means no limit
122
122
  */
123
123
  maxHeight: 100000000,
124
-
124
+
125
125
  /**
126
126
  Returns the current layout for the view. Set this property to update
127
127
  the layout. Direct properties are exposed a well. You will usually want
128
128
  to work with those instead.
129
-
129
+
130
130
  @property
131
131
  @type {Hash}
132
132
  */
133
133
  layout: function(key, value) {
134
134
  var view = this.get('view');
135
- if (!view) return null;
136
-
135
+ if (!view) return null;
136
+
137
137
  if (value !== undefined) view.set('layout', value);
138
138
  return view.get('layout');
139
139
  }.property('view').cacheable(),
140
-
140
+
141
141
  /**
142
- The current anchor location. This determines which of the other dimension
142
+ The current anchor location. This determines which of the other dimension
143
143
  metrics are actually used to compute the layout. The value may be one of:
144
-
144
+
145
145
  TOP_LEFT, TOP_CENTER, TOP_RIGHT, TOP_HEIGHT,
146
146
  CENTER_LEFT, CENTER_CENTER, CENTER_RIGHT, CENTER_HEIGHT
147
147
  BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, BOTTOM_HEIGHT,
148
148
  WIDTH_LEFT, WIDTH_CENTER, WIDTH_RIGHT, WIDTH_HEIGHT,
149
149
  null
150
-
150
+
151
151
  @property
152
152
  @type {Number}
153
153
  */
154
154
  anchorLocation: function(key, value) {
155
- var layout = this.get('layout'),
155
+ var layout = this.get('layout'),
156
156
  K = SC.ViewDesigner,
157
157
  h, v, frame, view, pview, pframe, ret;
158
-
158
+
159
159
  if (!layout) return null;
160
160
 
161
161
  // update to refelct new anchor locations...
162
162
  if (value !== undefined) {
163
-
164
- ret = {};
163
+
164
+ ret = {};
165
165
  view = this.get('view');
166
166
  frame = view.get('frame');
167
167
  pview = view.get('parentView');
168
168
  pframe = pview ? pview.get('frame') : null;
169
169
  if (!pframe) pframe = SC.RootResponder.responder.computeWindowSize();
170
-
170
+
171
171
  // compute new layout in each direction
172
172
  if (value & K.ANCHOR_LEFT) {
173
173
  ret.left = frame.x;
174
174
  ret.width = frame.width;
175
-
175
+
176
176
  } else if (value & K.ANCHOR_RIGHT) {
177
177
  ret.right = (pframe.width - SC.maxX(frame));
178
178
  ret.width = frame.width;
179
-
179
+
180
180
  } else if (value & K.ANCHOR_CENTERX) {
181
181
  ret.centerX = Math.round(SC.midX(frame) - (pframe.width/2)) ;
182
182
  ret.width = frame.width;
183
-
183
+
184
184
  } else if (value & K.ANCHOR_WIDTH) {
185
185
  ret.left = frame.x;
186
186
  ret.right = (pframe.width - SC.maxX(frame));
@@ -190,15 +190,15 @@ SC.ViewDesigner = SC.Object.extend(
190
190
  if (value & K.ANCHOR_TOP) {
191
191
  ret.top = frame.y;
192
192
  ret.height = frame.height;
193
-
193
+
194
194
  } else if (value & K.ANCHOR_BOTTOM) {
195
195
  ret.bottom = (pframe.height - SC.maxY(frame));
196
196
  ret.height = frame.height;
197
-
197
+
198
198
  } else if (value & K.ANCHOR_CENTERY) {
199
199
  ret.centerY = Math.round(SC.midY(frame) - (pframe.height/2)) ;
200
200
  ret.height = frame.height;
201
-
201
+
202
202
  } else if (value & K.ANCHOR_HEIGHT) {
203
203
  ret.top = frame.y;
204
204
  ret.bottom = (pframe.height - SC.maxY(frame));
@@ -207,13 +207,13 @@ SC.ViewDesigner = SC.Object.extend(
207
207
  this.set('layout', ret);
208
208
  layout = ret ;
209
209
  }
210
-
210
+
211
211
  if (!SC.none(layout.left)) {
212
212
  h = SC.none(layout.width) ? K.ANCHOR_WIDTH : K.ANCHOR_LEFT;
213
213
  } else if (!SC.none(layout.right)) h = K.ANCHOR_RIGHT;
214
214
  else if (!SC.none(layout.centerX)) h = K.ANCHOR_CENTERX;
215
215
  else h = 0;
216
-
216
+
217
217
  if (!SC.none(layout.top)) {
218
218
  v = SC.none(layout.height) ? K.ANCHOR_HEIGHT : K.ANCHOR_TOP;
219
219
  } else if (!SC.none(layout.bottom)) v = K.ANCHOR_BOTTOM ;
@@ -223,19 +223,19 @@ SC.ViewDesigner = SC.Object.extend(
223
223
  return v | h;
224
224
  }.property('layout').cacheable(),
225
225
 
226
- _layoutProperty: function(key, value) {
226
+ _layoutProperty: function(key, value) {
227
227
  var layout = this.get('layout');
228
228
  if (!layout) return null;
229
-
229
+
230
230
  if (!SC.none(layout) && (value !== undefined)) {
231
231
  layout = SC.copy(layout);
232
232
  layout[key] = value;
233
233
  this.set('layout', layout);
234
234
  }
235
-
235
+
236
236
  return layout[key];
237
237
  },
238
-
238
+
239
239
  /**
240
240
  Returns the top offset of the current layout or `null` if not defined
241
241
  */
@@ -277,48 +277,48 @@ SC.ViewDesigner = SC.Object.extend(
277
277
  layoutLeft: function(key, value) {
278
278
  return this._layoutProperty('left', value);
279
279
  }.property('layout').cacheable(),
280
-
280
+
281
281
  /**
282
282
  Returns the right offset of the current layout or `null` if not defined
283
283
  */
284
284
  layoutRight: function(key, value) {
285
285
  return this._layoutProperty('right', value);
286
286
  }.property('layout').cacheable(),
287
-
287
+
288
288
  /**
289
289
  Returns the centerX offset of the current layout or `null` if not defined
290
290
  */
291
291
  layoutCenterX: function(key, value) {
292
292
  return this._layoutProperty('centerX', value);
293
293
  }.property('layout').cacheable(),
294
-
294
+
295
295
  /**
296
296
  Returns the width offset of the current layout or `null` if not defined
297
297
  */
298
298
  layoutWidth: function(key, value) {
299
299
  return this._layoutProperty('width', value);
300
300
  }.property('layout').cacheable(),
301
-
301
+
302
302
  // ..........................................................
303
303
  // GENERIC PROPERTIES
304
- //
304
+ //
305
305
  // Adds support for adding generic properties to a view. These will
306
306
  // overwrite whatever you write out using specifically supported props.
307
-
307
+
308
308
  // ..........................................................
309
309
  // HANDLE ENCODING OF VIEW DESIGN
310
- //
310
+ //
311
311
 
312
312
  /**
313
313
  Encodes any simple properties that can just be copied from the view onto
314
314
  the coder. This is used by `encodeDesignProperties()` and
315
315
  `encodeLocalizedProperties()`.
316
316
  */
317
- encodeSimpleProperties: function(props, coder) {
317
+ encodeSimpleProperties: function(props, coder) {
318
318
  var view = this.get('view'), proto = this.get('viewClass').prototype ;
319
319
  props.forEach(function(prop) {
320
320
  var val = view[prop] ; // avoid get() since we don't want to exec props
321
-
321
+
322
322
  //handle bindings
323
323
  if (prop.length > 7 && prop.slice(-7) === "Binding" && val !== undefined){
324
324
  coder.js(prop,val.encodeDesign());
@@ -330,34 +330,34 @@ SC.ViewDesigner = SC.Object.extend(
330
330
  }
331
331
  }, this);
332
332
  },
333
-
334
333
 
335
- /**
334
+
335
+ /**
336
336
  Array of properties that can be encoded directly. This is an easy way to
337
337
  add support for simple properties that need to be written to the design
338
- without added code. These properties will be encoded by
338
+ without added code. These properties will be encoded by
339
339
  `encodeDesignProperties()`.
340
-
340
+
341
341
  You can add to this array in your subclasses.
342
342
  */
343
343
  designProperties: ['layout', 'isVisible', 'isEnabled', 'styleClass'],
344
-
345
-
344
+
345
+
346
346
  /*
347
347
  Array of properties specifically not displayed in the editable properties
348
348
  list
349
349
  */
350
-
350
+
351
351
  excludeProperties: ['layout', 'childViews'],
352
-
353
-
352
+
353
+
354
354
  /*
355
355
  Array of properties avaliaible to edit in greenhouse
356
-
356
+
357
357
  */
358
358
  editableProperties: function(){
359
359
 
360
- var con = this.get('designAttrs'),
360
+ var con = this.get('designAttrs'),
361
361
  view = this.get('view'),
362
362
  ret = [],
363
363
  designProperties = this.get('designProperties'),
@@ -373,13 +373,13 @@ SC.ViewDesigner = SC.Object.extend(
373
373
  ret.pushObject(SC.Object.create({value: view[k], key: k, view: view}));
374
374
  }
375
375
  });
376
-
377
- return ret;
376
+
377
+ return ret;
378
378
  }.property('designProperties').cacheable(),
379
-
380
-
381
- /**
382
- Invoked by a design coder to encode design properties. The default
379
+
380
+
381
+ /**
382
+ Invoked by a design coder to encode design properties. The default
383
383
  implementation invoked `encodeDesignProperties()` and
384
384
  `encodeChildViewsDesign()`. You can override this method with your own
385
385
  additional encoding if you like.
@@ -394,22 +394,22 @@ SC.ViewDesigner = SC.Object.extend(
394
394
 
395
395
  /**
396
396
  Encodes the design properties for the view. These properties are simply
397
- copied from the view onto the coder. As an optimization, the value of
397
+ copied from the view onto the coder. As an optimization, the value of
398
398
  each property will be checked against the default value in the class. If
399
399
  they match, the property will not be emitted.
400
400
  */
401
401
  encodeDesignProperties: function(coder) {
402
402
  return this.encodeSimpleProperties(this.get('designProperties'), coder);
403
403
  },
404
-
405
-
404
+
405
+
406
406
  encodeDesignAttributeProperties: function(coder){
407
407
  var designProps = this.get('designProperties'),
408
408
  designAttrs = this.get('designAttrs'),
409
409
  simpleProps = [];
410
-
410
+
411
411
  if(designAttrs) designAttrs = designAttrs[0];
412
-
412
+
413
413
  for(var attr in designAttrs){
414
414
  if(designAttrs.hasOwnProperty(attr) && designProps.indexOf(attr) < 0 && attr !== 'childViews'){
415
415
  simpleProps.push(attr);
@@ -417,10 +417,10 @@ SC.ViewDesigner = SC.Object.extend(
417
417
  }
418
418
  return this.encodeSimpleProperties(simpleProps, coder);
419
419
  },
420
-
420
+
421
421
  /**
422
- Encodes the design for child views. The default implementation loops
423
- through child views. If you store your child views elsewhere in your
422
+ Encodes the design for child views. The default implementation loops
423
+ through child views. If you store your child views elsewhere in your
424
424
  config (for example as named properties), then you may want to override
425
425
  this method with your own encoding.
426
426
  */
@@ -430,18 +430,18 @@ SC.ViewDesigner = SC.Object.extend(
430
430
  if (childViews.length>0) coder.object('childViews', childViews);
431
431
  },
432
432
 
433
- /**
433
+ /**
434
434
  Array of localized that can be encoded directly. This is an easy way to
435
- add support for simple properties that need to be written to the
436
- localization without added code. These properties will be encoded by
435
+ add support for simple properties that need to be written to the
436
+ localization without added code. These properties will be encoded by
437
437
  `encodeLocalizedProperties()`.
438
-
438
+
439
439
  You can add to this array in your subclasses.
440
440
  */
441
441
  localizedProperties: [],
442
-
443
- /**
444
- Invoked by a localization coder to encode design properties. The default
442
+
443
+ /**
444
+ Invoked by a localization coder to encode design properties. The default
445
445
  implementation invoked `encodeLocalizedProperties()` and
446
446
  `encodeChildViewsLoc()`. You can override this method with your own
447
447
  additional encoding if you like.
@@ -454,18 +454,18 @@ SC.ViewDesigner = SC.Object.extend(
454
454
  },
455
455
 
456
456
  /**
457
- Encodes the localized properties for the view. These properties are
458
- simply copied from the view onto the coder. As an optimization, the value
459
- of each property will be checked against the default value in the class.
457
+ Encodes the localized properties for the view. These properties are
458
+ simply copied from the view onto the coder. As an optimization, the value
459
+ of each property will be checked against the default value in the class.
460
460
  If they match, the property will not be emitted.
461
461
  */
462
462
  encodeLocalizedProperties: function(coder) {
463
463
  return this.encodeSimpleProperties(this.get('localizedProperties'),coder);
464
464
  },
465
-
465
+
466
466
  /**
467
- Encodes the design for child views. The default implementation loops
468
- through child views. If you store your child views elsewhere in your
467
+ Encodes the design for child views. The default implementation loops
468
+ through child views. If you store your child views elsewhere in your
469
469
  config (for example as named properties), then you may want to override
470
470
  this method with your own encoding.
471
471
  */
@@ -476,31 +476,31 @@ SC.ViewDesigner = SC.Object.extend(
476
476
  },
477
477
 
478
478
  /**
479
- This method is invoked when the designer is instantiated. You can use
479
+ This method is invoked when the designer is instantiated. You can use
480
480
  this method to reload any state saved in the view. This method is called
481
- before any observers or bindings are setup to give you a chance to
481
+ before any observers or bindings are setup to give you a chance to
482
482
  configure the initial state of the designer.
483
483
  */
484
484
  awakeDesign: function() {},
485
-
486
-
485
+
486
+
487
487
  /**
488
488
  over-ride this method in your designers to customies drop operations
489
489
  default just calls appendChild
490
-
490
+
491
491
  TODO: Come up with a better name for this method.
492
492
  */
493
493
  addView: function(view){
494
494
  this.view.appendChild(view);
495
495
  },
496
-
496
+
497
497
  // ..........................................................
498
498
  // VIEW RELAYING
499
- //
499
+ //
500
500
  // View property changes relay automatically...
501
-
501
+
502
502
  /**
503
- Invoked whenever the view changes. This will observe all property
503
+ Invoked whenever the view changes. This will observe all property
504
504
  changes on the new view.
505
505
  */
506
506
  viewDidChange: function() {
@@ -513,30 +513,30 @@ SC.ViewDesigner = SC.Object.extend(
513
513
  if (view) view.addObserver('*', this, func);
514
514
  this.viewPropertyDidChange(view, '*', null, null);
515
515
  }.observes('view'),
516
-
516
+
517
517
  /**
518
518
  Invoked whenever a property on the view has changed. The passed key will
519
519
  be '*' when the entire view has changed. The default implementation here
520
- will notify the property as changed on the reciever if the
521
- property value is undefined on the reciever.
522
-
523
- It will notify all properties changed for '*'. You may override this
520
+ will notify the property as changed on the receiver if the
521
+ property value is undefined on the receiver.
522
+
523
+ It will notify all properties changed for '*'. You may override this
524
524
  method with your own behavior if you like.
525
525
  */
526
- viewPropertyDidChange: function(view, key) {
526
+ viewPropertyDidChange: function(view, key) {
527
527
  if (key === '*') this.allPropertiesDidChange();
528
528
  else if (this[key] === undefined) this.notifyPropertyChange(key) ;
529
-
529
+
530
530
  if ((key === '*') || (key === 'layout')) {
531
531
  if (this.get('designIsSelected') && this._handles) {
532
532
  this._handles.set('layout', SC.clone(view.get('layout')));
533
533
  }
534
534
  }
535
535
  },
536
-
536
+
537
537
  /**
538
- The `unknownProperty` handler will pass through to the view by default.
539
- This will often provide you the support you need without needing to
538
+ The `unknownProperty` handler will pass through to the view by default.
539
+ This will often provide you the support you need without needing to
540
540
  customize the Designer. Just make sure you don't define a conflicting
541
541
  property name on the designer itself!
542
542
  */
@@ -546,47 +546,47 @@ SC.ViewDesigner = SC.Object.extend(
546
546
  return value ;
547
547
  } else return this.view.get(key);
548
548
  },
549
-
549
+
550
550
  // ......................................
551
551
  // PRIVATE METHODS
552
552
  //
553
-
553
+
554
554
  init: function() {
555
-
555
+
556
556
  // setup design from view state...
557
557
  this.awakeDesign();
558
-
558
+
559
559
  // setup bindings, etc
560
560
  sc_super();
561
-
561
+
562
562
  // now add observer for property changes on view to relay change out.
563
563
  this.viewDidChange();
564
-
564
+
565
565
  // and register with designController, if defined...
566
566
  var c= this.get('designController');
567
567
  if (c) c.registerDesigner(this) ;
568
-
568
+
569
569
  },
570
570
 
571
571
  destroy: function() {
572
572
  sc_super();
573
- this.set('view', null); // clears the view observer...
573
+ this.set('view', null); // clears the view observer...
574
574
  },
575
-
575
+
576
576
  designIsSelectedDidChange: function() {
577
- if (SC.kindOf(this.view, SC.Pane)) return this ;
578
-
577
+ if (SC.kindOf(this.view, SC.Pane)) return this ;
578
+
579
579
  var isSel = this.get('designIsSelected');
580
580
  var handles = this._handles;
581
-
581
+
582
582
  if (isSel) {
583
-
583
+
584
584
  if (!handles) {
585
- handles = this._handles = SC.SelectionHandlesView.create({
586
- designer: this
585
+ handles = this._handles = SC.SelectionHandlesView.create({
586
+ designer: this
587
587
  });
588
588
  }
589
-
589
+
590
590
  var parent = this.view.get('parentView');
591
591
  if (!handles.get('parentView') !== parent) parent.appendChild(handles);
592
592
  handles.set('layout', this.view.get('layout'));
@@ -594,7 +594,7 @@ SC.ViewDesigner = SC.Object.extend(
594
594
  if (handles.get('parentView')) handles.removeFromParent();
595
595
  }
596
596
  }.observes('designIsSelected'),
597
-
597
+
598
598
  tryToPerform: function(methodName, arg1, arg2) {
599
599
  // only handle event if we are in design mode
600
600
  var page = this.view ? this.view.get('page') : null ;
@@ -608,13 +608,13 @@ SC.ViewDesigner = SC.Object.extend(
608
608
  return SC.Object.prototype.tryToPerform.apply(this.view, arguments);
609
609
  }
610
610
  },
611
-
611
+
612
612
  // ..........................................................
613
613
  // DRAWING SUPPORT
614
- //
614
+ //
615
615
 
616
616
  /**
617
- Update the layer to add any design-specific marking
617
+ Update the layer to add any design-specific marking
618
618
  */
619
619
  didCreateLayer: function() {},
620
620
 
@@ -627,46 +627,46 @@ SC.ViewDesigner = SC.Object.extend(
627
627
  Update the layer to add any design-specific marking
628
628
  */
629
629
  willDestroyLayer: function() {},
630
-
630
+
631
631
  // ..........................................................
632
632
  // ROOT DESIGNER SUPPORT
633
- //
634
-
633
+ //
634
+
635
635
  parentDesignerIsRoot: function(){
636
636
  var dc = this.get('designController'), view = this.get('view');
637
637
  return dc.get('rootDesigner') === view.getPath('parentView.designer');
638
638
  }.property(),
639
-
639
+
640
640
  /**
641
641
  set this property to `YES` if you want your designer to become Root
642
642
  */
643
643
  acceptRootDesigner: NO,
644
-
644
+
645
645
  isRootDesigner: NO,
646
-
646
+
647
647
  isRootDesignerDidChange: function() {
648
-
648
+
649
649
  var isRoot = this.get('isRootDesigner'),
650
650
  highLight = this._highLight;
651
-
651
+
652
652
  if (isRoot && this.get('designIsEnabled')) {
653
-
653
+
654
654
  if (!highLight) {
655
- highLight = this._highLight = SC.RootDesignerHighLightView.create({
656
- designer: this
655
+ highLight = this._highLight = SC.RootDesignerHighLightView.create({
656
+ designer: this
657
657
  });
658
658
  }
659
-
659
+
660
660
  var parent = this.view.get('parentView');
661
661
  highLight.set('targetFrame', this.view.get('frame'));
662
-
662
+
663
663
  if (!highLight.get('parentView') !== parent) parent.insertBefore(highLight,this.view);
664
- }
664
+ }
665
665
  else if (highLight) {
666
666
  if (highLight.get('parentView')) highLight.removeFromParent();
667
667
  }
668
668
  }.observes('isRootDesigner'),
669
-
669
+
670
670
  resignRootDesigner: function(){
671
671
  var prevRoot = this.get('prevRootDesigner');
672
672
  if(this.get('isRootDesigner') && prevRoot){
@@ -674,7 +674,7 @@ SC.ViewDesigner = SC.Object.extend(
674
674
  if(dc) dc.makeRootDesigner(prevRoot);
675
675
  }
676
676
  },
677
-
677
+
678
678
  shouldReleaseRootDesigner: function(evt){
679
679
  var frame = this.view.get('frame');
680
680
  if(this.get('isRootDesigner') && !SC.pointInRect({ x: evt.pageX, y: evt.pageY }, frame)){
@@ -683,13 +683,13 @@ SC.ViewDesigner = SC.Object.extend(
683
683
  }
684
684
  return NO;
685
685
  },
686
-
686
+
687
687
  // ..........................................................
688
688
  // MOUSE HANDLING
689
- //
690
-
689
+ //
690
+
691
691
  HANDLE_MARGIN: 10,
692
-
692
+
693
693
  /**
694
694
  Select on `mouseDown`. If `metaKey` or `shiftKey` is pressed, add to
695
695
  selection. Otherwise just save starting info for dragging
@@ -697,13 +697,13 @@ SC.ViewDesigner = SC.Object.extend(
697
697
  mouseDown: function(evt) {
698
698
  this.shouldReleaseRootDesigner(evt);
699
699
  if (!this.get('designIsEnabled') || !this.get('parentDesignerIsRoot')) return NO ;
700
-
700
+
701
701
  // save mouse down info
702
- var view = this.get('view'),
702
+ var view = this.get('view'),
703
703
  info, vert, horiz, repos, frame, pview, margin, canH, canV;
704
-
704
+
705
705
  if (!view) return NO; // nothing to do
706
-
706
+
707
707
  // save mouse down state for later use
708
708
  this._mouseDownInfo = info = {
709
709
  layout: SC.copy(view.get('layout')),
@@ -712,8 +712,8 @@ SC.ViewDesigner = SC.Object.extend(
712
712
  metaKey: evt.metaKey || evt.shiftKey,
713
713
  source: this,
714
714
  x: evt.pageX, y: evt.pageY
715
- };
716
- info.hanchor = info.vanchor = info.reposition = NO;
715
+ };
716
+ info.hanchor = info.vanchor = info.reposition = NO;
717
717
 
718
718
  // detect what operations are available.
719
719
  repos = this.get('canReposition');
@@ -737,7 +737,7 @@ SC.ViewDesigner = SC.Object.extend(
737
737
  vert = "top";
738
738
  } else if (Math.abs(info.y - SC.maxY(frame)) <= margin) {
739
739
  vert = "bottom";
740
- }
740
+ }
741
741
  }
742
742
 
743
743
  canH = this.get('canResizeHorizontal');
@@ -745,7 +745,7 @@ SC.ViewDesigner = SC.Object.extend(
745
745
 
746
746
  // look for corners if can resize in both directions...
747
747
  if (canH && canV) {
748
- if (!vert || !horiz) vert = horiz = NO ;
748
+ if (!vert || !horiz) vert = horiz = NO ;
749
749
 
750
750
  // if can only resize horizonal - must be in middle vertical
751
751
  } else if (canH) {
@@ -764,8 +764,8 @@ SC.ViewDesigner = SC.Object.extend(
764
764
  // now save settings...
765
765
  if (horiz) info.hanchor = horiz ;
766
766
  if (vert) info.vanchor = vert ;
767
- if (!horiz && !vert && repos) info.reposition = YES ;
768
-
767
+ if (!horiz && !vert && repos) info.reposition = YES ;
768
+
769
769
  // if not yet selected, select item immediately. This way future events
770
770
  // will be handled properly
771
771
  if (!info.selected) {
@@ -773,8 +773,8 @@ SC.ViewDesigner = SC.Object.extend(
773
773
  }
774
774
 
775
775
  // save initial info on all selected items
776
- if (info.reposition) this.get('designController').prepareReposition(info);
777
-
776
+ if (info.reposition) this.get('designController').prepareReposition(info);
777
+
778
778
  return YES ;
779
779
  },
780
780
 
@@ -784,14 +784,14 @@ SC.ViewDesigner = SC.Object.extend(
784
784
  info[SC.keyFor('layout', SC.guidFor(this))] = layout;
785
785
  return this ;
786
786
  },
787
-
787
+
788
788
  /**
789
789
  mouse dragged will resize or reposition depending on the settings from
790
790
  mousedown.
791
791
  */
792
792
  mouseDragged: function(evt) {
793
793
  if (!this.get('designIsEnabled') || !this.get('parentDesignerIsRoot')) return NO ;
794
- var info = this._mouseDownInfo,
794
+ var info = this._mouseDownInfo,
795
795
  view = this.get('view'),
796
796
  layout, startX, startY;
797
797
  //do some binding!!!
@@ -818,11 +818,11 @@ SC.ViewDesigner = SC.Object.extend(
818
818
  newLink.end = {x: ep.x, y: ep.y};
819
819
  newLink.style = { color: 'green', width: 3 };
820
820
  this.setIfChanged('shapes', [newLink]);
821
- }
821
+ }
822
822
  }.observes('startPoint', 'endPoint')
823
823
  });
824
824
  SC.designPage.get('designMainPane').appendChild(dragLink);
825
-
825
+
826
826
  SC.Drag.start({
827
827
  event: evt,
828
828
  source: this,
@@ -848,16 +848,16 @@ SC.ViewDesigner = SC.Object.extend(
848
848
  }
849
849
 
850
850
  },
851
-
851
+
852
852
  // ..........................................................
853
853
  // Drag source and drag data source
854
- //
854
+ //
855
855
  dragDataTypes: ['SC.Binding'],
856
856
 
857
- dragDataForType: function(drag, dataType) {
858
- return dataType === 'SC.Binding' ? this.get('view') : null;
857
+ dragDataForType: function(drag, dataType) {
858
+ return dataType === 'SC.Binding' ? this.get('view') : null;
859
859
  },
860
-
860
+
861
861
  /**
862
862
  On `mouseUp` potentially change selection and cleanup.
863
863
  */
@@ -865,15 +865,15 @@ SC.ViewDesigner = SC.Object.extend(
865
865
  if (!this.get('designIsEnabled') || !this.get('parentDesignerIsRoot')) return NO ;
866
866
 
867
867
  var info = this._mouseDownInfo;
868
-
868
+
869
869
  // if selected on mouse down and we didn't do any dragging, then deselect.
870
870
  if (info.selected && !info.dragged) {
871
-
871
+
872
872
  // is the mouse still inside the view? If not, don't do anything...
873
873
  var view = this.get('view'),
874
- frame = view ? view.get('frame') : null,
874
+ frame = view ? view.get('frame') : null,
875
875
  pview = view.get('parentView');
876
-
876
+
877
877
  if (frame && pview) frame = pview.convertFrameToView(frame, null);
878
878
 
879
879
  if (!frame || SC.pointInRect({ x: evt.pageX, y: evt.pageY }, frame)) {
@@ -886,19 +886,19 @@ SC.ViewDesigner = SC.Object.extend(
886
886
  if(SC._Greenhouse && evt.clickCount === 2){
887
887
  var dc = this.get('designController');
888
888
  if(this.acceptRootDesigner && dc) {
889
- dc.makeRootDesigner(this);
889
+ dc.makeRootDesigner(this);
890
890
  }
891
891
  else{
892
892
  //TODO: [MB] decide if this is the functionality I want...
893
893
  SC._Greenhouse.sendAction('openInspector', view);
894
894
  }
895
895
  }
896
-
896
+
897
897
  this._mouseDownInfo = null;
898
-
898
+
899
899
  return YES ;
900
900
  },
901
-
901
+
902
902
  /**
903
903
  Called by `designerController` to reposition the view
904
904
  */
@@ -907,9 +907,9 @@ SC.ViewDesigner = SC.Object.extend(
907
907
  this._mouseReposition(evt, info, this.HKEYS, layout);
908
908
  this._mouseReposition(evt, info, this.VKEYS, layout);
909
909
  this.set('layout', layout);
910
- return this;
910
+ return this;
911
911
  },
912
-
912
+
913
913
  HKEYS: {
914
914
  evtPoint: "pageX",
915
915
  point: "x",
@@ -933,31 +933,31 @@ SC.ViewDesigner = SC.Object.extend(
933
933
  size: "height",
934
934
  anchor: "vanchor"
935
935
  },
936
-
936
+
937
937
  /**
938
938
  Generic resizer. Must pass one set of keys: VKEYS, HKEYS
939
939
  */
940
940
  _mouseResize: function(evt, info, keys, ret) {
941
-
941
+
942
942
  var delta = evt[keys.evtPoint] - info[keys.point],
943
943
  layout = info.layout,
944
944
  view = this.get('view'),
945
945
  min = this.get(keys.min),
946
946
  max = this.get(keys.max),
947
-
947
+
948
948
  headKey = keys.head,
949
949
  tailKey = keys.tail,
950
950
  centerKey = keys.center,
951
951
  sizeKey = keys.size,
952
-
952
+
953
953
  hasHead = !SC.none(layout[keys.head]),
954
954
  hasTail = !SC.none(layout[keys.tail]),
955
955
  hasCenter = !SC.none(layout[keys.center]),
956
- hasSize = !SC.none(layout[keys.size]),
956
+ hasSize = !SC.none(layout[keys.size]),
957
957
  w;
958
958
 
959
959
  if (info[keys.anchor] === headKey) {
960
-
960
+
961
961
  // if left aligned, adjust left size and width if set.
962
962
  if (hasHead) {
963
963
  if (hasSize) {
@@ -965,13 +965,13 @@ SC.ViewDesigner = SC.Object.extend(
965
965
  ret[sizeKey] = Math.min(max, Math.max(min, Math.floor(layout[sizeKey] - delta)));
966
966
  min = (layout[headKey]+w) - min;
967
967
  max = (layout[headKey]+w) - max;
968
-
968
+
969
969
  ret[headKey] = Math.max(max, Math.min(min, Math.floor(layout[headKey]+delta)));
970
-
970
+
971
971
  } else {
972
972
  ret[headKey] = Math.floor(layout[headKey]+delta);
973
973
  }
974
-
974
+
975
975
  // if right aligned or centered, adjust the width...
976
976
  } else if (hasTail || hasCenter) {
977
977
  if (hasCenter) delta *= 2;
@@ -981,7 +981,7 @@ SC.ViewDesigner = SC.Object.extend(
981
981
  } else ret[headKey] = Math.floor((layout[headKey]||0)+delta);
982
982
 
983
983
  } else if (info[keys.anchor] === tailKey) {
984
-
984
+
985
985
  // reverse above
986
986
  if (hasTail) {
987
987
 
@@ -990,13 +990,13 @@ SC.ViewDesigner = SC.Object.extend(
990
990
  ret[sizeKey] = Math.min(max, Math.max(min, Math.floor(layout[sizeKey] + delta)));
991
991
  min = (layout[tailKey]+w)-min;
992
992
  max = (layout[tailKey]+w)-max;
993
-
993
+
994
994
  ret[tailKey] = Math.max(max, Math.min(min, Math.floor(layout[tailKey]-delta)));
995
995
 
996
996
  } else {
997
997
  ret[tailKey] = Math.floor(layout[tailKey]-delta);
998
998
  }
999
-
999
+
1000
1000
  } else {
1001
1001
  if (hasCenter) delta *= 2;
1002
1002
  ret[sizeKey] = Math.max(min, Math.min(max, Math.floor((layout[sizeKey]||0)+delta)));
@@ -1005,81 +1005,81 @@ SC.ViewDesigner = SC.Object.extend(
1005
1005
 
1006
1006
  return this;
1007
1007
  },
1008
-
1008
+
1009
1009
  _mouseReposition: function(evt, info, keys, ret) {
1010
1010
  var delta = evt[keys.evtPoint] - info[keys.point],
1011
1011
  layout = info[SC.keyFor('layout', SC.guidFor(this))],
1012
1012
  view = this.get('view'),
1013
-
1013
+
1014
1014
  headKey = keys.head,
1015
1015
  tailKey = keys.tail,
1016
1016
  centerKey = keys.center,
1017
1017
  sizeKey = keys.size,
1018
-
1018
+
1019
1019
  hasHead = !SC.none(layout[headKey]),
1020
1020
  hasTail = !SC.none(layout[tailKey]),
1021
1021
  hasCenter = !SC.none(layout[centerKey]),
1022
- hasSize = !SC.none(layout[sizeKey]),
1022
+ hasSize = !SC.none(layout[sizeKey]),
1023
1023
  w;
1024
1024
 
1025
1025
  // auto-widths can't be repositioned
1026
1026
  if (hasHead && hasTail && !hasSize) return NO ;
1027
-
1027
+
1028
1028
  // left/top aligned, just adjust top/left location
1029
1029
  if (hasHead) {
1030
1030
  ret[headKey] = layout[headKey]+delta;
1031
-
1031
+
1032
1032
  // right/bottom aligned, adjust bottom/right location
1033
1033
  } else if (hasTail) {
1034
1034
  ret[tailKey] = layout[tailKey]-delta;
1035
1035
 
1036
1036
  } else if (hasCenter) {
1037
1037
  ret[centerKey] = layout[centerKey]+delta;
1038
-
1038
+
1039
1039
  } else ret[headKey] = (layout[headKey]||0)+delta;
1040
-
1040
+
1041
1041
  return YES ;
1042
1042
  },
1043
-
1043
+
1044
1044
  // ..........................................................
1045
1045
  // Drag data source (for binding lines)
1046
- //
1046
+ //
1047
1047
  /**
1048
- This method must be overridden for drag operations to be allowed.
1048
+ This method must be overridden for drag operations to be allowed.
1049
1049
  Return a bitwise OR'd mask of the drag operations allowed on the
1050
1050
  specified target. If you don't care about the target, just return a
1051
1051
  constant value.
1052
-
1052
+
1053
1053
  @param {SC.View} dropTarget The proposed target of the drop.
1054
1054
  @param {SC.Drag} drag The SC.Drag instance managing this drag.
1055
-
1055
+
1056
1056
  */
1057
1057
  dragSourceOperationMaskFor: function(drag, dropTarget) {
1058
1058
  return SC.DRAG_LINK;
1059
1059
  },
1060
1060
 
1061
- /**
1061
+ /**
1062
1062
  This method is called when the drag begins. You can use this to do any
1063
- visual highlighting to indicate that the receiver is the source of the
1063
+ visual highlighting to indicate that the receiver is the source of the
1064
1064
  drag.
1065
-
1065
+
1066
1066
  @param {SC.Drag} drag The Drag instance managing this drag.
1067
-
1068
- @param {Point} loc The point in *window* coordinates where the drag
1069
- began. You can use convertOffsetFromView() to convert this to local
1067
+
1068
+ @param {Point} loc The point in *window* coordinates where the drag
1069
+ began. You can use convertOffsetFromView() to convert this to local
1070
1070
  coordinates.
1071
1071
  */
1072
1072
  dragDidBegin: function(drag, loc) {
1073
1073
  },
1074
-
1074
+
1075
1075
  /**
1076
1076
  This method is called whenever the drag image is moved. This is
1077
1077
  similar to the `dragUpdated()` method called on drop targets.
1078
1078
 
1079
1079
  @param {SC.Drag} drag The Drag instance managing this drag.
1080
1080
 
1081
- @param {Point} loc The point in *window* coordinates where the drag
1082
- mouse is. You can use convertOffsetFromView() to convert this to local
1081
+ @param {Point} loc The point in *window* coordinates where the drag
1082
+ mouse is. You can use convertOffsetFromView() to convert this to local
1083
1083
  coordinates.
1084
1084
  */
1085
1085
  dragDidMove: function(drag, loc) {
@@ -1097,19 +1097,19 @@ SC.ViewDesigner = SC.Object.extend(
1097
1097
  }
1098
1098
  }
1099
1099
  },
1100
-
1101
- /**
1100
+
1101
+ /**
1102
1102
  This method is called when the drag ended. You can use this to do any
1103
1103
  cleanup. The operation is the actual operation performed on the drag.
1104
-
1104
+
1105
1105
  @param {SC.Drag} drag The drag instance managing the drag.
1106
-
1107
- @param {Point} loc The point in WINDOW coordinates where the drag
1108
- ended.
1109
-
1110
- @param {DragOp} op The drag operation that was performed. One of
1106
+
1107
+ @param {Point} loc The point in WINDOW coordinates where the drag
1108
+ ended.
1109
+
1110
+ @param {DragOp} op The drag operation that was performed. One of
1111
1111
  SC.DRAG_COPY, SC.DRAG_MOVE, SC.DRAG_LINK, or SC.DRAG_NONE.
1112
-
1112
+
1113
1113
  */
1114
1114
  dragDidEnd: function(drag, loc, op) {
1115
1115
  var dragLink = drag.dragLink;
@@ -1123,7 +1123,7 @@ if (!SC.View.Designer) SC.View.Designer = SC.ViewDesigner ;
1123
1123
  // ..........................................................
1124
1124
  // DESIGN NOTIFICATION METHODS
1125
1125
  //
1126
- // These methods are invoked automatically on the designer class whenever it
1126
+ // These methods are invoked automatically on the designer class whenever it
1127
1127
  // is loaded.
1128
1128
 
1129
1129
  SC.ViewDesigner.mixin({
@@ -1132,12 +1132,12 @@ SC.ViewDesigner.mixin({
1132
1132
  ANCHOR_RIGHT: 0x0002,
1133
1133
  ANCHOR_CENTERX: 0x0004,
1134
1134
  ANCHOR_WIDTH: 0x0010,
1135
-
1135
+
1136
1136
  ANCHOR_TOP: 0x0100,
1137
1137
  ANCHOR_BOTTOM: 0x0200,
1138
1138
  ANCHOR_CENTERY: 0x0400,
1139
1139
  ANCHOR_HEIGHT: 0x1000,
1140
-
1140
+
1141
1141
  /**
1142
1142
  Invoked whenever a designed view is loaded. This will save the design
1143
1143
  attributes for later use by a designer.
@@ -1149,34 +1149,34 @@ SC.ViewDesigner.mixin({
1149
1149
  },
1150
1150
 
1151
1151
  /**
1152
- Invoked whenever a location is applied to a designed view. Saves the
1152
+ Invoked whenever a location is applied to a designed view. Saves the
1153
1153
  attributes separately for use by the design view.
1154
1154
  */
1155
1155
  didLoadLocalization: function(designedView, attrs) {
1156
1156
  // nothing to do for now.
1157
1157
  },
1158
-
1158
+
1159
1159
  /**
1160
- Invoked whenver a view is created. This will create a peer designer if
1160
+ Invoked whenver a view is created. This will create a peer designer if
1161
1161
  needed.
1162
1162
  */
1163
1163
  didCreateView: function(view, attrs) {
1164
1164
  // add designer if page is in design mode
1165
1165
  var page = view.get('page'), design = view.constructor;
1166
-
1166
+
1167
1167
  if (design.isDesign && page && page.get('needsDesigner')) {
1168
-
1168
+
1169
1169
  // find the designer class
1170
1170
  var cur = design, origDesign = design;
1171
1171
  while(cur && !cur.Designer) cur = cur.superclass;
1172
1172
  var DesignerClass = (cur) ? cur.Designer : SC.View.Designer;
1173
-
1173
+
1174
1174
  // next find the first superclass view that is not a design (and a real
1175
- // class). This is important to make sure that we can determine the
1175
+ // class). This is important to make sure that we can determine the
1176
1176
  // real name of a view's class.
1177
1177
  while (design && design.isDesign) design = design.superclass;
1178
1178
  if (!design) design = SC.View;
1179
-
1179
+
1180
1180
  view.designer = DesignerClass.create({
1181
1181
  view: view,
1182
1182
  viewClass: design,
@@ -1185,13 +1185,13 @@ SC.ViewDesigner.mixin({
1185
1185
  });
1186
1186
  }
1187
1187
  }
1188
-
1188
+
1189
1189
  });
1190
1190
 
1191
1191
 
1192
1192
  // ..........................................................
1193
1193
  // FIXUP SC.View
1194
- //
1194
+ //
1195
1195
 
1196
1196
  SC.View.prototype._orig_respondsTo = SC.View.prototype.respondsTo;
1197
1197
  SC.View.prototype._orig_tryToPerform = SC.View.prototype.tryToPerform;
@@ -1218,8 +1218,8 @@ SC.View.prototype.respondsTo = function( methodName ) {
1218
1218
  }
1219
1219
  };
1220
1220
 
1221
- /**
1222
- If the view has a designer, give it an opportunity to handle an event
1221
+ /**
1222
+ If the view has a designer, give it an opportunity to handle an event
1223
1223
  before passing it on to the main view.
1224
1224
  */
1225
1225
  /*SC.View.prototype.tryToPerform = function(methodName, arg1, arg2) {
@@ -1240,7 +1240,7 @@ SC.View.prototype.tryToPerform = function(methodName, arg1, arg2) {
1240
1240
 
1241
1241
 
1242
1242
  /*
1243
- If the view has a designer, also call designers didCreateLayer method to
1243
+ If the view has a designer, also call designers didCreateLayer method to
1244
1244
  allow drawing.
1245
1245
  */
1246
1246
  SC.View.prototype.createLayer = function() {
@@ -1250,7 +1250,7 @@ SC.View.prototype.createLayer = function() {
1250
1250
  };
1251
1251
 
1252
1252
  /*
1253
- If the view has a designer, also call the designer's didUpdateLayer method
1253
+ If the view has a designer, also call the designer's didUpdateLayer method
1254
1254
  to allow drawing.
1255
1255
  */
1256
1256
  SC.View.prototype.updateLayer = function() {