sproutcore 1.6.0.rc.2-x86-mingw32 → 1.6.0.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. data/CHANGELOG +12 -0
  2. data/VERSION.yml +1 -1
  3. data/bin/sc-docs +6 -1
  4. data/lib/buildtasks/target.rake +1 -1
  5. data/lib/frameworks/sproutcore/Buildfile +5 -1
  6. data/lib/frameworks/sproutcore/CHANGELOG.md +175 -1
  7. data/lib/frameworks/sproutcore/apps/test_controls/controllers/select.js +12 -0
  8. data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +19 -5
  9. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +28 -31
  10. data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +9 -2
  11. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +21 -1
  12. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +1 -1
  13. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +6 -1
  14. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +26 -8
  15. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +2 -0
  16. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +12 -5
  17. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +25 -9
  18. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +157 -5
  19. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +7 -6
  20. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +9 -3
  21. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +8 -8
  22. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +104 -4
  23. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +3 -56
  24. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +4 -2
  25. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +59 -0
  26. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +41 -1
  27. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +10 -2
  28. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +16 -1
  29. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +1 -1
  30. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -0
  31. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +18 -2
  32. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +10 -6
  33. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +18 -1
  34. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +9 -1
  35. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +9 -4
  36. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +15 -3
  37. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +14 -8
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +8 -18
  39. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +12 -2
  40. data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +296 -0
  41. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +1 -1
  42. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +330 -326
  43. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +22 -1
  44. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +1 -1
  45. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +614 -614
  46. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/data_source.js +14 -1
  47. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +3 -1
  48. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +2 -0
  49. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +2 -0
  50. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +20 -13
  51. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +61 -46
  52. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +30 -30
  53. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +24 -24
  54. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/connectDataSource.js +31 -0
  55. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +1177 -0
  56. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +4 -63
  57. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +1 -1
  58. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
  59. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +7 -8
  60. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +18 -1
  61. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +9 -0
  62. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +3 -3
  63. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +3 -3
  64. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +1 -1
  65. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +1 -1
  66. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +1 -1
  67. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +1 -1
  68. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +1 -1
  69. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +3 -2
  70. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +12 -2
  71. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +1 -1
  72. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +1 -1
  73. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +1 -1
  74. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +1 -1
  75. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +2 -2
  76. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +1 -1
  77. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -1
  78. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +1 -1
  79. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +1 -1
  80. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +1 -1
  81. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +1 -1
  82. data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +1 -0
  83. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +33 -22
  84. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +20 -1
  85. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +10 -3
  86. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +34 -7
  87. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +14 -15
  88. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +40 -14
  89. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +699 -700
  90. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +2 -2
  91. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +11 -1
  92. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +16 -6
  93. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +0 -1
  94. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +49 -7
  95. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +9 -0
  96. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +6 -2
  97. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +4 -26
  98. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +20 -19
  99. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
  100. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +249 -249
  101. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/edit_mode.js +13 -5
  102. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/emptiness.js +53 -37
  103. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form.js +2 -1
  104. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form_row.js +3 -11
  105. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/edit_mode.js +53 -0
  106. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/emptiness.js +114 -0
  107. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form.js +174 -6
  108. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_row.js +86 -6
  109. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +80 -110
  110. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form_row.js +96 -97
  111. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +2 -1
  112. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +20 -36
  113. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +121 -0
  114. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +90 -0
  115. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/mixins/select_view_menu.js +139 -0
  116. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/render_delegates/select_button.js +14 -0
  117. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/ext/menu_resizing.js +25 -0
  118. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/bindings.js +43 -0
  119. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/check_selected.js +32 -0
  120. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/menu_setup.js +40 -0
  121. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/show_menu.js +45 -0
  122. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/menu_width.js +49 -0
  123. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/selected_item.js +191 -0
  124. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +264 -0
  125. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +450 -0
  126. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +14 -6
  127. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +1 -1
  128. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split.js +1 -1
  129. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split_divider.js +1 -1
  130. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +9 -0
  131. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +3 -2
  132. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +7 -17
  133. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +1 -1
  134. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +35 -8
  135. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
  136. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +1 -1
  137. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +1 -1
  138. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +1 -1
  139. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +1 -1
  140. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +2 -0
  141. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +1 -1
  142. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +1 -1
  143. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +6 -6
  144. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/favicon.ico +0 -0
  145. data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +0 -5
  146. data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +4 -2
  147. data/lib/frameworks/sproutcore/frameworks/foundation/system/math.js +2 -1
  148. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +13 -0
  149. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +6 -9
  150. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +912 -0
  151. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +36 -7
  152. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +58 -4
  153. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +1 -3
  154. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +0 -15
  155. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +2 -2
  156. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +25 -14
  157. data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1 -1
  158. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +15 -9
  159. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/flatten.js +24 -0
  160. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +2 -1
  161. data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +5 -5
  162. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +19 -0
  163. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +3 -2
  164. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +1 -1
  165. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1 -1
  166. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +14 -14
  167. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +3 -0
  168. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +2 -2
  169. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +2 -2
  170. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
  171. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +3 -3
  172. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +15 -16
  173. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +6 -2
  174. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +30 -0
  175. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +17 -0
  176. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +9 -2
  177. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +3 -1
  178. data/lib/frameworks/sproutcore/frameworks/testing/resources/runner.css +0 -1
  179. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +80 -0
  180. data/lib/frameworks/sproutcore/frameworks/yuireset/resources/core.css +0 -4
  181. data/lib/frameworks/sproutcore/lib/index.rhtml +2 -1
  182. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +3 -3
  183. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +2 -2
  184. data/lib/frameworks/sproutcore/themes/ace/resources/form/form.css +9 -0
  185. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +3 -1
  186. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +1 -1
  187. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +1 -1
  188. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +1 -1
  189. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/panel.js +1 -1
  190. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +2 -0
  191. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +1 -1
  192. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/well.js +1 -1
  193. data/lib/sproutcore/builders/base.rb +5 -1
  194. data/lib/sproutcore/builders/handlebars.rb +12 -1
  195. data/lib/sproutcore/models/target.rb +1 -9
  196. data/lib/sproutcore/rack/proxy.rb +238 -92
  197. data/lib/sproutcore/tools/docs.rb +1 -7
  198. data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -0
  199. data/spec/fixtures/builder_tests/apps/handlebars_test/{template.handlebars → templates/template.handlebars} +2 -0
  200. data/spec/lib/builders/handlebars_spec.rb +10 -4
  201. data/sproutcore.gemspec +3 -1
  202. metadata +73 -44
  203. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/default_styles.css +0 -5
  204. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/strings.js +0 -15
  205. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_checkbox_field.js +0 -17
  206. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_field.js +0 -17
  207. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_label.js +0 -17
  208. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_radio_field.js +0 -17
  209. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_text_field.js +0 -17
@@ -6,7 +6,7 @@
6
6
  // ==========================================================================
7
7
 
8
8
  /**
9
- @mixin
9
+ @namespace
10
10
  Child views of SplitViews should use this mixin to get their positioning
11
11
  logic and default settings.
12
12
 
@@ -14,7 +14,8 @@
14
14
  child views. This mixin observes the position and size properties and
15
15
  calls adjust().
16
16
  */
17
- SC.SplitChild = {
17
+ SC.SplitChild =
18
+ /** @scope SC.SplitChild.prototype */{
18
19
  /**
19
20
  * Set to YES if your Split Child is a divider view.
20
21
  *
@@ -48,13 +49,15 @@ SC.SplitChild = {
48
49
  * The current size of the SC.SplitView child. Use this to set the default
49
50
  * size.
50
51
  *
51
- * Note: if undefined, results are undefined.
52
+ * If you specify a size, autoResizeStyle will default to SC.RESIZE_MANUAL;
53
+ * if you don't, SplitView will assume you want it to fill the available space
54
+ * and use SC.RESIZE_AUTOMATIC.
52
55
  *
53
- * @default 100
56
+ * @default undefined
54
57
  *
55
58
  * @type Number
56
59
  */
57
- size: 100,
60
+ size: undefined,
58
61
 
59
62
  /**
60
63
  * [RO] The current position of the SC.SplitView. This is read-only, and is set
@@ -121,9 +124,14 @@ SC.SplitChild = {
121
124
  * SC.RESIZE_AUTOMATIC views have already been resized as much as possible.
122
125
  * - SC.FIXED_SIZE: Never resize.
123
126
  *
127
+ * If you specify an autoResizeStyle, it will be used. If you leave it at `undefined`,
128
+ * it will look at `size`: if a `size` is supplied, it will use `SC.RESIZE_MANUAL`; otherwise
129
+ * it will use `SC.RESIZE_AUTOMATIC`.
130
+ *
131
+ * @default based on size
124
132
  * @type {AutoResizeStyle}
125
133
  */
126
- autoResizeStyle: SC.RESIZE_MANUAL,
134
+ autoResizeStyle: undefined,
127
135
 
128
136
  /**
129
137
  * If NO, moving the divider before this view will not resize the view, but
@@ -30,7 +30,7 @@ SC.MOVES_PREVIOUS_CHILD = 'moves-previous-child';
30
30
  SC.MOVES_NEXT_CHILD = 'moves-next-child';
31
31
 
32
32
  /**
33
- @mixin
33
+ @namespace
34
34
  A SplitThumb may be placed inside any view in a SplitView, and can even
35
35
  be a direct child of the SplitView. It forwards its events to the SplitView
36
36
  to control the movement of a divider or another child of the SplitView.
@@ -6,7 +6,7 @@
6
6
  // ==========================================================================
7
7
 
8
8
  SC.BaseTheme.splitRenderDelegate = SC.RenderDelegate.create({
9
- name: 'split',
9
+ className: 'split',
10
10
 
11
11
  render: function(dataSource, context) {
12
12
  context.addClass(dataSource.get('layoutDirection'));
@@ -6,7 +6,7 @@
6
6
  // ==========================================================================
7
7
 
8
8
  SC.BaseTheme.splitDividerRenderDelegate = SC.RenderDelegate.create({
9
- name: 'split-divider',
9
+ className: 'split-divider',
10
10
  dividerSize: 1,
11
11
 
12
12
  splitPositionOffset: -5,
@@ -291,6 +291,15 @@ SC.SplitView = SC.View.extend({
291
291
  // as we loop using the lastChild variable.
292
292
  for (idx = 0; idx < len; idx++) {
293
293
  child = children[idx];
294
+
295
+ // do initial setup of things like autoResizeStyle:
296
+ if (!child.get('autoResizeStyle')) {
297
+ if (child.get('size') !== undefined) {
298
+ child.set('autoResizeStyle', SC.RESIZE_MANUAL);
299
+ } else {
300
+ child.set('autoResizeStyle', SC.RESIZE_AUTOMATIC);
301
+ }
302
+ }
294
303
 
295
304
  // we initialize the size first thing in case the size is empty (fill)
296
305
  // if it is empty, the way we position the views would lead to inconsistent
@@ -7,8 +7,9 @@
7
7
 
8
8
  /**
9
9
  @class
10
- @deprecated
11
- DEPRECATED. Kept to allow a modicum of backwards-compatibility. Please use
10
+ @deprecated Use a normal view and mix-in SC.SplitThumb.
11
+
12
+ Kept to allow a modicum of backwards-compatibility. Please use
12
13
  a normal view and mix in SC.SplitThumb instead.
13
14
 
14
15
  @extends SC.View
@@ -314,7 +314,7 @@ SC.AutoResizeManager = {
314
314
  return SC.AutoResizeManager.doBatchResize();
315
315
  }
316
316
 
317
- var tag, views, view, layer, batches;
317
+ var tag, views, view, layer, batches, prepared;
318
318
 
319
319
  // first measure all the batched views
320
320
  batches = this.viewsNeedingResize;
@@ -322,28 +322,18 @@ SC.AutoResizeManager = {
322
322
  if (batches.hasOwnProperty(tag)) {
323
323
  views = batches[tag];
324
324
 
325
- // step through until you find one with a layer and also visible
325
+ // now measure the rest using the same settings
326
326
  while ((view = views.pop())) {
327
+ if(view.get('isVisible') && (layer = view.get('autoResizeLayer'))) {
328
+ if(!prepared) SC.prepareStringMeasurement(layer);
327
329
 
328
- if(!view.get('isVisible')) continue;
329
-
330
- layer = view.get('autoResizeLayer');
331
-
332
- // use the layer to prepare the measurement
333
- if(layer) {
334
- SC.prepareStringMeasurement(layer, view.get('classNames'));
335
330
  view.measureSize(YES);
336
- break;
337
331
  }
338
332
  }
339
333
 
340
- // now measure the rest using the same settings
341
- while ((view = views.pop())) {
342
- if(view.get('isVisible')) view.measureSize(YES);
343
- }
344
-
345
- SC.teardownStringMeasurement();
346
-
334
+ // if they were all isVisible:NO, then prepare was never called
335
+ // so dont call teardown
336
+ if(prepared) SC.teardownStringMeasurement();
347
337
  }
348
338
  }
349
339
 
@@ -6,7 +6,7 @@
6
6
  // ==========================================================================
7
7
 
8
8
  /**
9
- @mixin
9
+ @namespace
10
10
 
11
11
  This mixin allows a view to get its value from a content object based
12
12
  on the value of its contentValueKey.
@@ -150,7 +150,7 @@ SC.FlowedLayout = {
150
150
  /** @private */
151
151
  _scfl_layoutPropertyDidChange: function(){
152
152
  this.invokeOnce("_scfl_tile");
153
- },
153
+ }.observes('layoutDirection', 'align', 'flowPadding', 'canWrap', 'defaultFlowSpacing'),
154
154
 
155
155
  /** @private
156
156
  Overriden to only update if it is a view we do not manage, or the width or height has changed
@@ -192,11 +192,15 @@ SC.FlowedLayout = {
192
192
  observeChildLayout: function(c) {
193
193
  if (c._scfl_isBeingObserved) return;
194
194
  c._scfl_isBeingObserved = YES;
195
+ c.addObserver('flowSpacing', this, '_scfl_layoutPropertyDidChange');
195
196
  c.addObserver('isVisible', this, '_scfl_layoutPropertyDidChange');
196
197
  c.addObserver('useAbsoluteLayout', this, '_scfl_layoutPropertyDidChange');
197
198
  c.addObserver('calculatedWidth', this, '_scfl_layoutPropertyDidChange');
198
199
  c.addObserver('calculatedHeight', this, '_scfl_layoutPropertyDidChange');
199
200
  c.addObserver('startsNewRow', this, '_scfl_layoutPropertyDidChange');
201
+ c.addObserver('isSpacer', this, '_scfl_layoutPropertyDidChange');
202
+ c.addObserver('fillWidth', this, '_scfl_layoutPropertyDidChange');
203
+ c.addObserver('fillHeight', this, '_scfl_layoutPropertyDidChange');
200
204
  },
201
205
 
202
206
  /** @private
@@ -204,11 +208,15 @@ SC.FlowedLayout = {
204
208
  */
205
209
  unobserveChildLayout: function(c) {
206
210
  c._scfl_isBeingObserved = NO;
211
+ c.removeObserver('flowSpacing', this, '_scfl_layoutPropertyDidChange');
207
212
  c.removeObserver('isVisible', this, '_scfl_layoutPropertyDidChange');
208
213
  c.removeObserver('useAbsoluteLayout', this, '_scfl_layoutPropertyDidChange');
209
214
  c.removeObserver('calculatedWidth', this, '_scfl_layoutPropertyDidChange');
210
215
  c.removeObserver('calculatedHeight', this, '_scfl_layoutPropertyDidChange');
211
216
  c.removeObserver('startsNewRow', this, '_scfl_layoutPropertyDidChange');
217
+ c.removeObserver('isSpacer', this, '_scfl_layoutPropertyDidChange');
218
+ c.removeObserver('fillWidth', this, '_scfl_layoutPropertyDidChange');
219
+ c.removeObserver('fillHeight', this, '_scfl_layoutPropertyDidChange');
212
220
  },
213
221
 
214
222
  /**
@@ -233,6 +241,7 @@ SC.FlowedLayout = {
233
241
  flowSpacingForChild: function(idx, view) {
234
242
  var spacing = view.get("flowSpacing");
235
243
  if (SC.none(spacing)) spacing = this.get("defaultFlowSpacing");
244
+ if (SC.none(spacing)) spacing = 0;
236
245
 
237
246
  if (SC.typeOf(spacing) === SC.T_NUMBER) {
238
247
  spacing = { left: spacing, right: spacing, bottom: spacing, top: spacing };
@@ -259,7 +268,7 @@ SC.FlowedLayout = {
259
268
  flowSizeForChild: function(idx, view) {
260
269
  var cw = view.get('calculatedWidth'), ch = view.get('calculatedHeight');
261
270
 
262
- var calc = {}, f = view.get('frame');
271
+ var calc = {}, f = view.get('frame'), l = view.get('layout');
263
272
  view._scfl_lastFrame = f;
264
273
 
265
274
  // if there is a calculated width, use that. NOTE: if calculatedWidth === 0,
@@ -281,9 +290,9 @@ SC.FlowedLayout = {
281
290
  // expands in to 0.
282
291
  if (view.get('isSpacer')) {
283
292
  if (this.get('layoutDirection') === SC.LAYOUT_HORIZONTAL) {
284
- calc.width = view.get('layout').minWidth || 0;
293
+ calc.width = l.minWidth || 0;
285
294
  } else {
286
- calc.height = view.get('layout').minHeight || 0;
295
+ calc.height = l.minHeight || 0;
287
296
  }
288
297
  }
289
298
 
@@ -291,11 +300,20 @@ SC.FlowedLayout = {
291
300
  if (
292
301
  this.get('layoutDirection') === SC.LAYOUT_HORIZONTAL && view.get('fillHeight')
293
302
  ) {
294
- calc.height = view.get('layout').minHeight || 0;
303
+ calc.height = l.minHeight || 0;
295
304
  } else if (
296
305
  this.get('layoutDirection') === SC.LAYOUT_VERTICAL && view.get('fillWidth')
297
306
  ) {
298
- calc.width = view.get('layout').minWidth || 0;
307
+ calc.width = l.minWidth || 0;
308
+ }
309
+
310
+ // finally, RECREATE the view's layout if it is invalid (lacks a width or a height)
311
+ if (l.width == undefined) {
312
+ view.adjust('width', f.width);
313
+ }
314
+
315
+ if (l.height == undefined) {
316
+ view.adjust('height', f.height);
299
317
  }
300
318
 
301
319
  // return
@@ -462,7 +480,8 @@ SC.FlowedLayout = {
462
480
  items = [], itemOffset = 0, isVertical = plan.isVertical, itemSize, itemLength,
463
481
  canWrap = this.get('canWrap'),
464
482
  newRowPending = NO;
465
-
483
+
484
+ var maxItemLength = 0;
466
485
  var max = row.plan.maximumRowLength;
467
486
 
468
487
  for (idx = startingAt; idx < len; idx++) {
@@ -521,10 +540,18 @@ SC.FlowedLayout = {
521
540
 
522
541
  items.push(item);
523
542
  itemOffset += itemLength;
543
+ maxItemLength = Math.max(itemLength, maxItemLength);
524
544
  }
525
545
 
526
546
  row.rowLength = itemOffset;
527
- row.plan.maximumCollapsedRowLength = Math.max(row.rowLength, row.plan.maximumCollapsedRowLength);
547
+
548
+ // if the row cannot wrap, then the minimum size for the row (and therefore collapsed size)
549
+ // is the same as the current row length: it consists of the minimum size of all items.
550
+ //
551
+ // If the row can wrap, then the longest item will determine the size of a fully
552
+ // collapsed (one item per row) layout.
553
+ var minRowLength = canWrap ? maxItemLength : row.rowLength;
554
+ row.plan.maximumCollapsedRowLength = Math.max(minRowLength, row.plan.maximumCollapsedRowLength);
528
555
  row.items = items;
529
556
  return idx;
530
557
  },
@@ -6,7 +6,7 @@
6
6
  // ==========================================================================
7
7
 
8
8
  /**
9
- @mixin
9
+ @namespace
10
10
 
11
11
  This mixin is used for views that show a seperate editor view to edit.
12
12
  For example, the default behavior of SC.LabelView if isEditable is set
@@ -6,7 +6,7 @@
6
6
  // ==========================================================================
7
7
 
8
8
  /**
9
- @mixin
9
+ @namespace
10
10
 
11
11
  This mixin is for a view that is editable but is acting as a proxy to
12
12
  edit another view. For example, a calendar picker that pops up over
@@ -6,7 +6,7 @@
6
6
  // ==========================================================================
7
7
 
8
8
  /**
9
- @mixin
9
+ @namespace
10
10
 
11
11
  This delegate is consulted by view implementing SC.InlineEditable and
12
12
  SC.InlineEditor and controls the lifecycle of the editor as well as begin
@@ -49,7 +49,7 @@ SC.BEST_FIT = "fitBest";
49
49
  SC.BEST_FIT_DOWN_ONLY = "fitBestDown";
50
50
 
51
51
  /**
52
- @mixin
52
+ @namespace
53
53
 
54
54
  InnerFrame provides the innerFrameForSize function, which will return a frame for the given size adjusted
55
55
  to fit within the given outer size, according to the align and scale properties.
@@ -51,7 +51,7 @@ sc_require('render_delegates/render_delegate');
51
51
  */
52
52
 
53
53
  SC.BaseTheme.canvasImageRenderDelegate = SC.RenderDelegate.create({
54
- name: 'canvasImage',
54
+ className: 'canvasImage',
55
55
 
56
56
  /** @private
57
57
  We don't have an element yet, so we do the minimal necessary setup
@@ -5,6 +5,8 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
+ sc_require('render_delegates/render_delegate');
9
+
8
10
  SC.RenderDelegate.reopen({
9
11
  /**
10
12
  A list of size names to look for when automatically determining
@@ -34,7 +34,7 @@ sc_require('render_delegates/render_delegate');
34
34
  */
35
35
 
36
36
  SC.BaseTheme.imageRenderDelegate = SC.RenderDelegate.create({
37
- name: 'image',
37
+ className: 'image',
38
38
 
39
39
  render: function(dataSource, context) {
40
40
  var image = dataSource.get('image'),
@@ -35,7 +35,7 @@ sc_require('render_delegates/render_delegate');
35
35
  */
36
36
 
37
37
  SC.BaseTheme.labelRenderDelegate = SC.RenderDelegate.create({
38
- name: 'label',
38
+ className: 'label',
39
39
 
40
40
  render: function(dataSource, context) {
41
41
  this.addSizeClassName(dataSource, context);
@@ -126,7 +126,7 @@
126
126
  directive. For example:
127
127
 
128
128
  MyTheme.buttonRenderDelegate = SC.RenderDelegate.create({
129
- name: 'button',
129
+ className: 'button',
130
130
  render: function(dataSource, context) {
131
131
  this.includeSlices(dataSource, context, SC.THREE_SLICE);
132
132
  }
@@ -199,7 +199,7 @@
199
199
  You can then use the helpers from your render delegates:
200
200
 
201
201
  MyTheme.someRenderDelegate = SC.RenderDelegate.create({
202
- name: 'some-thingy',
202
+ className: 'some-thingy',
203
203
  render: function(dataSource, context) {
204
204
  this.myHelperMethod(dataSource);
205
205
  }
@@ -270,7 +270,7 @@ SC.RenderDelegate = /** @scope SC.RenderDelegate.prototype */{
270
270
  create a render delegate, you call this:
271
271
 
272
272
  MyTheme.myRenderDelegate = SC.RenderDelegate.create({
273
- name: 'my-render-delegate',
273
+ className: 'my-render-delegate',
274
274
  render: function(dataSource, context) {
275
275
  // your code here...
276
276
  }
@@ -310,7 +310,7 @@ SC.RenderDelegate = /** @scope SC.RenderDelegate.prototype */{
310
310
  }
311
311
 
312
312
  if (v && v.isEnhancement && v !== this[i]) {
313
- v = SC._enhance(this[i] || K, v);
313
+ v = SC._enhance(this[i] || SC.K, v);
314
314
  }
315
315
 
316
316
  this[i] = v;
@@ -343,11 +343,11 @@ SC.RenderDelegate = /** @scope SC.RenderDelegate.prototype */{
343
343
  },
344
344
 
345
345
  /**
346
- All render delegates should have a name. Any time a render delegate is
346
+ All render delegates should have a class name. Any time a render delegate is
347
347
  used, this name should be added as a class name (`SC.View`s do this
348
348
  automatically).
349
349
  */
350
- name: undefined,
350
+ className: undefined,
351
351
 
352
352
  /**
353
353
  Writes the DOM representation of this render delegate to the
@@ -19,9 +19,6 @@
19
19
  right: 3px;
20
20
  position: absolute;
21
21
  }
22
- &.text-area .padding {
23
- right: 0px;
24
- }
25
22
  &.sc-text-field-accessory-view {
26
23
  z-index: 2;
27
24
  }
@@ -30,8 +27,6 @@
30
27
  top: 0px;
31
28
  left: 0px;
32
29
  width: 100%;
33
- height: 100%;
34
- line-height: 100%;
35
30
  bottom: 0px;
36
31
  right: 0px;
37
32
  display: block;
@@ -36,9 +36,11 @@ SC.ExceptionHandler = {
36
36
  @param {Exception} exception the exception thrown during execution
37
37
  */
38
38
  handleException: function(exception) {
39
- if (this.isShowingErrorDialog) return;
40
-
39
+ if (this.isShowingErrorDialog) return NO;
40
+
41
41
  this._displayErrorDialog(exception);
42
+
43
+ return NO;
42
44
  },
43
45
 
44
46
  /** @private