sproutcore 1.6.0.beta.3-java → 1.6.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +70 -0
- data/{History.txt → History.rdoc} +0 -0
- data/{README.txt → README.rdoc} +3 -2
- data/Rakefile +213 -10
- data/{Todo.txt → Todo.rdoc} +0 -0
- data/VERSION.yml +1 -1
- data/bin/sc-docs +6 -1
- data/lib/Buildfile +5 -1
- data/lib/buildtasks/manifest.rake +14 -1
- data/lib/buildtasks/target.rake +20 -23
- data/lib/frameworks/sproutcore/Buildfile +8 -3
- data/lib/frameworks/sproutcore/CHANGELOG.md +364 -1
- data/lib/frameworks/sproutcore/README.md +1 -1
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/select.js +12 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +19 -5
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +9 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +243 -199
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +250 -172
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +21 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controls/button.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +2 -42
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +38 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +6 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +11 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +55 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +26 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +37 -21
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +2 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +157 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +7 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +29 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +162 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +3 -56
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +24 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +59 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controls/button.js +39 -57
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +41 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +19 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +32 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +135 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +29 -18
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +18 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +10 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +414 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/{system → views}/bindable_span.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +112 -40
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +245 -67
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +17 -9
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +8 -18
- data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +15 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +12 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +296 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +330 -326
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +26 -5
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +69 -58
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +614 -614
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/data_source.js +203 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +20 -13
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +76 -47
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +30 -30
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +74 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/connectDataSource.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +1177 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +212 -182
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +6 -67
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +13 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +41 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +9 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +12 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/alert.css +49 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/a_sample_image.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/apple-logo1.jpeg +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/debug/iframe.html +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/disclosure.css +20 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/drag.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/icons.css +214 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/cap.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/downbutton.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-alert-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-bookmark-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-bookmark-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-cancel-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-document-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-document-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-down-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-favorite-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-favorite-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-folder-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-folder-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-group-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-group-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-help-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-help-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-info-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-left-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-options-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-options-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-redo-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-right-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-tools-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-trash-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-trash-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-undo-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-up-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-user-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-user-24.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-bottom.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-center.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/thumb-top.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/track.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/images/upbutton.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/list_item.css +145 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu.css +10 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu_item_view.css +88 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/modal.css +3 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/panel.css +91 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/picker.css +37 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/progress.css +29 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/radio.css +11 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +122 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/separator.css +20 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +34 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/split.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/split_divider.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/tab.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/toolbar.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{english.lproj → resources}/touch-scroller.css +13 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/well.css +65 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +58 -23
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +20 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +121 -103
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +34 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/static_content.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +1 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +20 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +14 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +43 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +717 -700
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +11 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +16 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +4 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +49 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +9 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/{panes → views}/select_button.js +52 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +4 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +46 -49
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +20 -19
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +249 -249
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/edit_mode.js +13 -5
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/mixins/emptiness.js +53 -37
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/render_delegates/form_row.js +3 -11
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/edit_mode.js +53 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/mixins/emptiness.js +114 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form.js +174 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_row.js +86 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +98 -126
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form_row.js +96 -97
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +2 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +20 -36
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +121 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +90 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/mixins/select_view_menu.js +139 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/render_delegates/select_button.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/ext/menu_resizing.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/bindings.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/check_selected.js +32 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/menu_setup.js +40 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/popup_button/show_menu.js +45 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/menu_width.js +49 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/selected_item.js +191 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +264 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +450 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split_divider.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +9 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +16 -19
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +4 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +85 -16
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/benchmark.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/blank.gif +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/bootstrap.rhtml +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +36 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/checkbox_view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/debug/control-test-pane.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/favicon.ico +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-logo.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-landscape.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-landscape.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-portrait.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup-portrait.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore-startup.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/images/sproutcore.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/inline_editor.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +47 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/radio_view.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/{english.lproj → resources}/static_layout.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +125 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/system/math.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/string.js +0 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +912 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +23 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +36 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +58 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +1 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +17 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +30 -19
- data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +2 -76
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +3348 -1591
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +38 -12
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/flatten.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +21 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +14 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +0 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +15 -16
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +10 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/requiredObjectForPropertyPath.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +98 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +30 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +4 -73
- data/lib/frameworks/sproutcore/frameworks/statechart/debug/sequence_matcher.js +189 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/ext/function.js +122 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +88 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/empty_state.js +34 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/history_state.js +97 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +16 -191
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +17 -79
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/debug/sequence_matcher.js +464 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +31 -11
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/with_concurrent_states.js +6 -4
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/advanced.js +40 -6
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/basic.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/intermediate.js +44 -3
- data/lib/frameworks/sproutcore/frameworks/testing/core.js +61 -9
- data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/additions.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/runner.css +10 -2
- data/lib/frameworks/sproutcore/frameworks/testing/{english.lproj → resources}/testsuite.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +66 -27
- data/lib/frameworks/sproutcore/frameworks/testing/tests/spy_on.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/testing/tests/stub_method.js +9 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +80 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/core.css +20 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/fonts.css +39 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +126 -0
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +57 -0
- data/lib/frameworks/sproutcore/lib/index.rhtml +8 -4
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +13 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +16 -14
- data/lib/frameworks/sproutcore/themes/ace/resources/form/form.css +9 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +3 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/panel.js +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +2 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/well.js +1 -1
- data/lib/gen/app/templates/apps/@target_name@/Buildfile +1 -4
- data/lib/gen/app/templates/apps/@target_name@/core.js +1 -4
- data/lib/gen/app/templates/apps/@target_name@/main.js +1 -4
- data/lib/gen/app/templates/apps/@target_name@/resources/main_page.js +1 -4
- data/lib/gen/app/templates/apps/@target_name@/theme.js +1 -4
- data/lib/gen/controller/templates/controllers/{@filename@.js → @filename@_controller.js} +1 -4
- data/lib/gen/controller/templates/tests/controllers/{@filename@.js → @filename@_test.js} +1 -4
- data/lib/gen/data-source/templates/data_sources/{@filename@.js → @filename@_data_source.js} +1 -4
- data/lib/gen/design/templates/resources/@filename@.js +1 -4
- data/lib/gen/framework/templates/frameworks/@target_name@/core.js +1 -4
- data/lib/gen/framework/templates/frameworks/@target_name@/english.lproj/strings.js +1 -4
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +1 -4
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +2 -0
- data/lib/gen/html_project/templates/@filename@/Buildfile +1 -4
- data/lib/gen/html_project/templates/@filename@/README +1 -4
- data/lib/gen/language/Buildfile +1 -1
- data/lib/gen/language/templates/@filename@/strings.js +1 -4
- data/lib/gen/model/templates/fixtures/{@filename@.js → @filename@_fixtures.js} +2 -5
- data/lib/gen/model/templates/models/{@filename@.js → @filename@_model.js} +1 -4
- data/lib/gen/model/templates/tests/models/{@filename@.js → @filename@_test.js} +1 -4
- data/lib/gen/page/templates/pages/@target_name@/Buildfile +1 -4
- data/lib/gen/page/templates/pages/@target_name@/core.js +1 -4
- data/lib/gen/page/templates/pages/@target_name@/en.lproj/strings.js +1 -4
- data/lib/gen/page/templates/pages/@target_name@/resources/body.css +3 -1
- data/lib/gen/project/templates/@filename@/Buildfile +1 -4
- data/lib/gen/project/templates/@filename@/README +1 -5
- data/lib/gen/responder/templates/states/{@filename@.js → @filename@_state.js} +1 -4
- data/lib/gen/test/templates/tests/{@filename@.js → @filename@_test.js} +1 -4
- data/lib/gen/theme/templates/themes/@target_name@/resources/theme_styles.css +1 -5
- data/lib/gen/theme/templates/themes/@target_name@/theme.js +1 -4
- data/lib/gen/view/templates/tests/views/{@filename@.js → @filename@_test.js} +1 -4
- data/lib/gen/view/templates/views/{@filename@.js → @filename@_view.js} +1 -4
- data/lib/sproutcore.rb +5 -15
- data/lib/sproutcore/builders/base.rb +5 -1
- data/lib/sproutcore/builders/handlebars.rb +12 -1
- data/lib/sproutcore/builders/module.rb +2 -2
- data/lib/sproutcore/buildfile/string_ext.rb +0 -4
- data/lib/sproutcore/helpers/cssmin.rb +44 -59
- data/lib/sproutcore/helpers/static_helper.rb +4 -2
- data/lib/sproutcore/helpers/text_helper.rb +11 -13
- data/lib/sproutcore/models/generator.rb +22 -0
- data/lib/sproutcore/models/manifest.rb +4 -4
- data/lib/sproutcore/models/manifest_entry.rb +1 -0
- data/lib/sproutcore/models/target.rb +3 -107
- data/lib/sproutcore/rack.rb +0 -1
- data/lib/sproutcore/rack/builder.rb +3 -0
- data/lib/sproutcore/rack/dev.rb +0 -1
- data/lib/sproutcore/rack/proxy.rb +240 -93
- data/lib/sproutcore/rack/service.rb +1 -1
- data/lib/sproutcore/render_engines/haml.rb +2 -5
- data/lib/sproutcore/tools.rb +11 -11
- data/lib/sproutcore/tools/build.rb +2 -0
- data/lib/sproutcore/tools/docs.rb +2 -37
- data/lib/sproutcore/tools/init.rb +10 -22
- data/lib/sproutcore/tools/manifest.rb +21 -22
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +21 -1
- data/spec/buildtasks/target_spec.rb +9 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/{template.handlebars → templates/template.handlebars} +2 -0
- data/{lib/doc_templates/sproutcore/allclasses.tmpl → spec/fixtures/ordered_entries/apps/template_style/a.js} +0 -0
- data/spec/fixtures/{real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER → ordered_entries/apps/template_style/template_style.js} +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +1 -1
- data/spec/lib/builders/handlebars_spec.rb +10 -4
- data/spec/lib/buildfile_commands/build_task_spec.rb +1 -1
- data/spec/lib/tools/manifest_spec.rb +11 -0
- data/sproutcore.gemspec +8 -7
- data/vendor/chance/lib/chance/instance.rb +8 -9
- metadata +167 -266
- data/lib/doc_templates/jsdoc/allclasses.tmpl +0 -17
- data/lib/doc_templates/jsdoc/allfiles.tmpl +0 -56
- data/lib/doc_templates/jsdoc/class.tmpl +0 -487
- data/lib/doc_templates/jsdoc/index.tmpl +0 -38
- data/lib/doc_templates/jsdoc/publish.js +0 -170
- data/lib/doc_templates/jsdoc/static/default.css +0 -162
- data/lib/doc_templates/jsdoc/static/header.html +0 -2
- data/lib/doc_templates/jsdoc/static/index.html +0 -19
- data/lib/doc_templates/jsdoc/symbol.tmpl +0 -35
- data/lib/doc_templates/sproutcore/allfiles.tmpl +0 -56
- data/lib/doc_templates/sproutcore/class.tmpl +0 -674
- data/lib/doc_templates/sproutcore/classes-json.tmpl +0 -55
- data/lib/doc_templates/sproutcore/index.tmpl +0 -62
- data/lib/doc_templates/sproutcore/publish.js +0 -346
- data/lib/doc_templates/sproutcore/static/default.css +0 -258
- data/lib/doc_templates/sproutcore/static/header.html +0 -2
- data/lib/doc_templates/sproutcore/static/index.html +0 -19
- data/lib/doc_templates/sproutcore/symbol.tmpl +0 -35
- data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/core.css +0 -378
- data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/view.css +0 -57
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +0 -56
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +0 -73
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +0 -916
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +0 -185
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +0 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +0 -101
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +0 -91
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +0 -35
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +0 -33
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +0 -10
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +0 -132
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +0 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +0 -69
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +0 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/well.css +0 -71
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/default_styles.css +0 -5
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/english.lproj/strings.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_checkbox_field.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_field.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_label.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_radio_field.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/tests/views/form_text_field.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +0 -40
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +0 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +0 -146
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +0 -55
- data/lib/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +0 -69
- data/lib/sproutcore/rack/docs.rb +0 -24
- data/vendor/jsdoc/README.txt +0 -151
- data/vendor/jsdoc/app/frame.js +0 -33
- data/vendor/jsdoc/app/frame/Chain.js +0 -102
- data/vendor/jsdoc/app/frame/Dumper.js +0 -144
- data/vendor/jsdoc/app/frame/Hash.js +0 -47
- data/vendor/jsdoc/app/frame/Link.js +0 -142
- data/vendor/jsdoc/app/frame/Namespace.js +0 -10
- data/vendor/jsdoc/app/frame/Opt.js +0 -134
- data/vendor/jsdoc/app/frame/Reflection.js +0 -26
- data/vendor/jsdoc/app/frame/String.js +0 -93
- data/vendor/jsdoc/app/frame/Testrun.js +0 -129
- data/vendor/jsdoc/app/handlers/FOODOC.js +0 -26
- data/vendor/jsdoc/app/handlers/XMLDOC.js +0 -26
- data/vendor/jsdoc/app/handlers/XMLDOC/DomReader.js +0 -159
- data/vendor/jsdoc/app/handlers/XMLDOC/XMLDoc.js +0 -16
- data/vendor/jsdoc/app/handlers/XMLDOC/XMLParse.js +0 -292
- data/vendor/jsdoc/app/lib/JSDOC.js +0 -98
- data/vendor/jsdoc/app/lib/JSDOC/DocComment.js +0 -200
- data/vendor/jsdoc/app/lib/JSDOC/DocTag.js +0 -294
- data/vendor/jsdoc/app/lib/JSDOC/JsDoc.js +0 -162
- data/vendor/jsdoc/app/lib/JSDOC/JsPlate.js +0 -100
- data/vendor/jsdoc/app/lib/JSDOC/Lang.js +0 -144
- data/vendor/jsdoc/app/lib/JSDOC/Parser.js +0 -109
- data/vendor/jsdoc/app/lib/JSDOC/PluginManager.js +0 -33
- data/vendor/jsdoc/app/lib/JSDOC/Symbol.js +0 -681
- data/vendor/jsdoc/app/lib/JSDOC/SymbolSet.js +0 -226
- data/vendor/jsdoc/app/lib/JSDOC/TextStream.js +0 -41
- data/vendor/jsdoc/app/lib/JSDOC/Token.js +0 -18
- data/vendor/jsdoc/app/lib/JSDOC/TokenReader.js +0 -332
- data/vendor/jsdoc/app/lib/JSDOC/TokenStream.js +0 -133
- data/vendor/jsdoc/app/lib/JSDOC/Util.js +0 -32
- data/vendor/jsdoc/app/lib/JSDOC/Walker.js +0 -453
- data/vendor/jsdoc/app/main.js +0 -74
- data/vendor/jsdoc/app/plugins/commentSrcJson.js +0 -19
- data/vendor/jsdoc/app/plugins/frameworkPrototype.js +0 -16
- data/vendor/jsdoc/app/plugins/functionCall.js +0 -10
- data/vendor/jsdoc/app/plugins/publishSrcHilite.js +0 -62
- data/vendor/jsdoc/app/plugins/sproutcoreTags.js +0 -26
- data/vendor/jsdoc/app/plugins/symbolLink.js +0 -9
- data/vendor/jsdoc/app/plugins/tagParamConfig.js +0 -31
- data/vendor/jsdoc/app/plugins/tagSynonyms.js +0 -43
- data/vendor/jsdoc/app/run.js +0 -346
- data/vendor/jsdoc/app/t/TestDoc.js +0 -144
- data/vendor/jsdoc/app/t/runner.js +0 -13
- data/vendor/jsdoc/app/test.js +0 -304
- data/vendor/jsdoc/app/test/addon.js +0 -24
- data/vendor/jsdoc/app/test/anon_inner.js +0 -14
- data/vendor/jsdoc/app/test/augments.js +0 -31
- data/vendor/jsdoc/app/test/augments2.js +0 -26
- data/vendor/jsdoc/app/test/borrows.js +0 -41
- data/vendor/jsdoc/app/test/borrows2.js +0 -23
- data/vendor/jsdoc/app/test/config.js +0 -22
- data/vendor/jsdoc/app/test/constructs.js +0 -18
- data/vendor/jsdoc/app/test/encoding.js +0 -10
- data/vendor/jsdoc/app/test/encoding_other.js +0 -12
- data/vendor/jsdoc/app/test/functions_anon.js +0 -39
- data/vendor/jsdoc/app/test/functions_nested.js +0 -33
- data/vendor/jsdoc/app/test/global.js +0 -13
- data/vendor/jsdoc/app/test/globals.js +0 -25
- data/vendor/jsdoc/app/test/ignore.js +0 -10
- data/vendor/jsdoc/app/test/inner.js +0 -16
- data/vendor/jsdoc/app/test/jsdoc_test.js +0 -477
- data/vendor/jsdoc/app/test/lend.js +0 -33
- data/vendor/jsdoc/app/test/memberof.js +0 -20
- data/vendor/jsdoc/app/test/memberof_constructor.js +0 -15
- data/vendor/jsdoc/app/test/name.js +0 -19
- data/vendor/jsdoc/app/test/namespace_nested.js +0 -23
- data/vendor/jsdoc/app/test/nocode.js +0 -13
- data/vendor/jsdoc/app/test/oblit_anon.js +0 -20
- data/vendor/jsdoc/app/test/overview.js +0 -20
- data/vendor/jsdoc/app/test/param_inline.js +0 -37
- data/vendor/jsdoc/app/test/params_optional.js +0 -8
- data/vendor/jsdoc/app/test/prototype.js +0 -17
- data/vendor/jsdoc/app/test/prototype_nested.js +0 -9
- data/vendor/jsdoc/app/test/prototype_oblit.js +0 -13
- data/vendor/jsdoc/app/test/prototype_oblit_constructor.js +0 -24
- data/vendor/jsdoc/app/test/public.js +0 -10
- data/vendor/jsdoc/app/test/shared.js +0 -42
- data/vendor/jsdoc/app/test/shared2.js +0 -2
- data/vendor/jsdoc/app/test/shortcuts.js +0 -22
- data/vendor/jsdoc/app/test/static_this.js +0 -13
- data/vendor/jsdoc/app/test/synonyms.js +0 -23
- data/vendor/jsdoc/app/test/tosource.js +0 -23
- data/vendor/jsdoc/app/test/variable_redefine.js +0 -14
- data/vendor/jsdoc/changes.txt +0 -47
- data/vendor/jsdoc/conf/sample.conf +0 -31
- data/vendor/jsdoc/java/build.xml +0 -36
- data/vendor/jsdoc/java/build_1.4.xml +0 -36
- data/vendor/jsdoc/java/classes/js.jar +0 -0
- data/vendor/jsdoc/java/src/JsDebugRun.java +0 -21
- data/vendor/jsdoc/java/src/JsRun.java +0 -21
- data/vendor/jsdoc/jsdebug.jar +0 -0
- data/vendor/jsdoc/jsrun.jar +0 -0
- data/vendor/jsdoc/t/TestDoc.js +0 -144
- data/vendor/jsdoc/t/runner.js +0 -13
- data/vendor/jsdoc/test.js +0 -304
- data/vendor/jsdoc/test/addon.js +0 -24
- data/vendor/jsdoc/test/anon_inner.js +0 -14
- data/vendor/jsdoc/test/augments.js +0 -31
- data/vendor/jsdoc/test/augments2.js +0 -26
- data/vendor/jsdoc/test/borrows.js +0 -41
- data/vendor/jsdoc/test/borrows2.js +0 -23
- data/vendor/jsdoc/test/config.js +0 -22
- data/vendor/jsdoc/test/constructs.js +0 -18
- data/vendor/jsdoc/test/encoding.js +0 -10
- data/vendor/jsdoc/test/encoding_other.js +0 -12
- data/vendor/jsdoc/test/functions_anon.js +0 -39
- data/vendor/jsdoc/test/functions_nested.js +0 -33
- data/vendor/jsdoc/test/global.js +0 -13
- data/vendor/jsdoc/test/globals.js +0 -25
- data/vendor/jsdoc/test/ignore.js +0 -10
- data/vendor/jsdoc/test/inner.js +0 -16
- data/vendor/jsdoc/test/jsdoc_test.js +0 -477
- data/vendor/jsdoc/test/lend.js +0 -33
- data/vendor/jsdoc/test/memberof.js +0 -20
- data/vendor/jsdoc/test/memberof_constructor.js +0 -15
- data/vendor/jsdoc/test/name.js +0 -19
- data/vendor/jsdoc/test/namespace_nested.js +0 -23
- data/vendor/jsdoc/test/nocode.js +0 -13
- data/vendor/jsdoc/test/oblit_anon.js +0 -20
- data/vendor/jsdoc/test/overview.js +0 -20
- data/vendor/jsdoc/test/param_inline.js +0 -37
- data/vendor/jsdoc/test/params_optional.js +0 -8
- data/vendor/jsdoc/test/prototype.js +0 -17
- data/vendor/jsdoc/test/prototype_nested.js +0 -9
- data/vendor/jsdoc/test/prototype_oblit.js +0 -13
- data/vendor/jsdoc/test/prototype_oblit_constructor.js +0 -24
- data/vendor/jsdoc/test/public.js +0 -10
- data/vendor/jsdoc/test/shared.js +0 -42
- data/vendor/jsdoc/test/shared2.js +0 -2
- data/vendor/jsdoc/test/shortcuts.js +0 -22
- data/vendor/jsdoc/test/static_this.js +0 -13
- data/vendor/jsdoc/test/synonyms.js +0 -23
- data/vendor/jsdoc/test/tosource.js +0 -23
- data/vendor/jsdoc/test/variable_redefine.js +0 -14
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js
CHANGED
|
@@ -247,3 +247,138 @@ test("should re-render when the content object changes", function() {
|
|
|
247
247
|
equals(view.$('li:eq(0)').text(), "ramalamadingdong");
|
|
248
248
|
|
|
249
249
|
});
|
|
250
|
+
|
|
251
|
+
test("should allow changes to content object before layer is created", function() {
|
|
252
|
+
var view = SC.TemplateCollectionView.create({
|
|
253
|
+
content: null
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
view.set('content', []);
|
|
257
|
+
view.set('content', [1, 2, 3]);
|
|
258
|
+
view.set('content', [1, 2]);
|
|
259
|
+
|
|
260
|
+
view.createLayer();
|
|
261
|
+
ok(view.$('li').length);
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
test("should allow changing content property to be null", function() {
|
|
265
|
+
var view = SC.TemplateCollectionView.create({
|
|
266
|
+
content: [1, 2, 3]
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
view.createLayer();
|
|
270
|
+
equals(view.$('li').length, 3, "precond - creates three elements");
|
|
271
|
+
|
|
272
|
+
view.set('content', null);
|
|
273
|
+
equals(view.$('li').length, 0, "should not create any li elements");
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
test("collection view within a collection view with default content should render content once", function() {
|
|
277
|
+
TemplateTests.InnerCollectionView = SC.TemplateCollectionView.extend();
|
|
278
|
+
|
|
279
|
+
TemplateTests.OuterItemView = SC.TemplateView.extend({
|
|
280
|
+
template: SC.Handlebars.compile('{{#collection "TemplateTests.InnerCollectionView" content=content.things}} {{content}} {{/collection}}')
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
TemplateTests.OuterCollectionView = SC.TemplateCollectionView.extend({
|
|
284
|
+
content: [
|
|
285
|
+
SC.Object.create({things: ['1', '2', '3']}),
|
|
286
|
+
SC.Object.create({things: ['4', '5']}),
|
|
287
|
+
SC.Object.create({things: ['6']})
|
|
288
|
+
],
|
|
289
|
+
itemView: TemplateTests.OuterItemView
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
var view = SC.TemplateView.create({
|
|
293
|
+
template: SC.Handlebars.compile('{{collection "TemplateTests.OuterCollectionView"}}')
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
view.createLayer();
|
|
297
|
+
|
|
298
|
+
equals(view.$('ul ul:eq(0) li').length, 3, 'first nested collection view should have 3 list items');
|
|
299
|
+
equals(view.$('ul ul:eq(1) li').length, 2, 'second nested collection view should have 2 list items');
|
|
300
|
+
equals(view.$('ul ul:eq(2) li').length, 1, 'third nested collection view should have 1 list items');
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
test("collection view within a collection view should have the right childViews", function() {
|
|
304
|
+
TemplateTests.InnerCollectionView = SC.TemplateCollectionView.extend();
|
|
305
|
+
|
|
306
|
+
TemplateTests.OuterItemView = SC.TemplateView.extend({
|
|
307
|
+
template: SC.Handlebars.compile('{{#collection "TemplateTests.InnerCollectionView" content=content.things}} {{content}} {{/collection}}')
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
TemplateTests.OuterCollectionView = SC.TemplateCollectionView.extend({
|
|
311
|
+
content: [
|
|
312
|
+
SC.Object.create({things: ['1', '2', '3']}),
|
|
313
|
+
SC.Object.create({things: ['4', '5']}),
|
|
314
|
+
SC.Object.create({things: ['6']})
|
|
315
|
+
],
|
|
316
|
+
itemView: TemplateTests.OuterItemView
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
var view = SC.TemplateView.create({
|
|
320
|
+
template: SC.Handlebars.compile('{{collection "TemplateTests.OuterCollectionView"}}')
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
view.createLayer();
|
|
324
|
+
|
|
325
|
+
var outer = view.childViews[0];
|
|
326
|
+
var firstInner = outer.childViews[0].childViews[0];
|
|
327
|
+
var secondInner = outer.childViews[1].childViews[0];
|
|
328
|
+
var thirdInner = outer.childViews[2].childViews[0];
|
|
329
|
+
|
|
330
|
+
ok(outer.kindOf(TemplateTests.OuterCollectionView), 'first child view should be instance of outer collection view');
|
|
331
|
+
ok(firstInner.kindOf(TemplateTests.InnerCollectionView), 'first child view of outer should be instance of inner');
|
|
332
|
+
ok(secondInner.kindOf(TemplateTests.InnerCollectionView), 'second child view of outer should be instance of inner');
|
|
333
|
+
ok(thirdInner.kindOf(TemplateTests.InnerCollectionView), 'third child view of outer should be instance of inner');
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
test("should render inverse template when its present and there is no content", function() {
|
|
337
|
+
TemplateTests.CollectionTestView = SC.TemplateCollectionView.create({
|
|
338
|
+
content: [],
|
|
339
|
+
inverseTemplate: SC.Handlebars.compile('<h1>inverse<h1>')
|
|
340
|
+
});
|
|
341
|
+
|
|
342
|
+
var view = SC.TemplateView.create({
|
|
343
|
+
template: SC.Handlebars.compile('{{collection "TemplateTests.CollectionTestView"}}')
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
view.createLayer();
|
|
347
|
+
|
|
348
|
+
equals(view.$('h1').text(), 'inverse', 'collection view with no content and inverse template should render inverse template')
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
test("should render inverse template name when its present and there is no content", function() {
|
|
352
|
+
TemplateTests.CollectionTestView = SC.TemplateCollectionView.create({
|
|
353
|
+
content: [],
|
|
354
|
+
inverseTemplateName: 'inverse_template',
|
|
355
|
+
|
|
356
|
+
templates: SC.Object.create({
|
|
357
|
+
inverse_template: function(dataSource) {
|
|
358
|
+
return "<h1>inverse template from file</h1>";
|
|
359
|
+
}
|
|
360
|
+
})
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
var view = SC.TemplateView.create({
|
|
364
|
+
template: SC.Handlebars.compile('{{collection "TemplateTests.CollectionTestView"}}')
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
view.createLayer();
|
|
368
|
+
|
|
369
|
+
equals(view.$('h1').text(), 'inverse template from file', 'collection view with no content and inverse template name should render template')
|
|
370
|
+
});
|
|
371
|
+
|
|
372
|
+
test("#collection helper should allow relative paths for the collection view class", function() {
|
|
373
|
+
var view = SC.TemplateView.create({
|
|
374
|
+
template: SC.Handlebars.compile('{{#collection "myCollectionView"}}{{content}}{{/collection}}'),
|
|
375
|
+
myCollectionView: SC.TemplateCollectionView.create({
|
|
376
|
+
content: ['foo', 'bar', 'baz']
|
|
377
|
+
})
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
SC.run(function() { view.createLayer(); });
|
|
381
|
+
|
|
382
|
+
equals(view.$('li').length, 3, '#collection should find relative collection view path');
|
|
383
|
+
});
|
|
384
|
+
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// ==========================================================================
|
|
2
2
|
// Project: SproutCore - JavaScript Application Framework
|
|
3
3
|
// Copyright: ©2006-2011 Strobe Inc. and contributors.
|
|
4
|
-
// ©2008-2011 Apple Inc. All rights reserved.
|
|
5
4
|
// License: Licensed under MIT license (see license.js)
|
|
6
5
|
// ==========================================================================
|
|
6
|
+
|
|
7
|
+
/*globals TemplateTests module */
|
|
7
8
|
/**
|
|
8
9
|
This module specifically tests integration with Handlebars and SproutCore-specific
|
|
9
10
|
Handlebars extensions.
|
|
@@ -293,23 +294,29 @@ test("Handlebars templates update properties if a content object changes", funct
|
|
|
293
294
|
equals(view.$('h2').text(), "brown coffee", "precond - renders color correctly");
|
|
294
295
|
equals(view.$('#price').text(), '$4', "precond - renders price correctly");
|
|
295
296
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
297
|
+
SC.run(function() {
|
|
298
|
+
view.set('coffee', SC.Object.create({
|
|
299
|
+
color: "mauve",
|
|
300
|
+
price: "$4.50"
|
|
301
|
+
}));
|
|
302
|
+
});
|
|
300
303
|
|
|
301
304
|
equals(view.$('h2').text(), "mauve coffee", "should update name field when content changes");
|
|
302
305
|
equals(view.$('#price').text(), "$4.50", "should update price field when content changes");
|
|
303
306
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
307
|
+
SC.run(function() {
|
|
308
|
+
view.set('coffee', SC.Object.create({
|
|
309
|
+
color: "mauve",
|
|
310
|
+
price: "$5.50"
|
|
311
|
+
}));
|
|
312
|
+
});
|
|
308
313
|
|
|
309
314
|
equals(view.$('h2').text(), "mauve coffee", "should update name field when content changes");
|
|
310
315
|
equals(view.$('#price').text(), "$5.50", "should update price field when content changes");
|
|
311
316
|
|
|
312
|
-
|
|
317
|
+
SC.run(function() {
|
|
318
|
+
view.setPath('coffee.price', "$5");
|
|
319
|
+
});
|
|
313
320
|
|
|
314
321
|
equals(view.$('#price').text(), "$5", "should update price field when price property is changed");
|
|
315
322
|
});
|
|
@@ -334,11 +341,11 @@ test("Template updates correctly if a path is passed to the bind helper", functi
|
|
|
334
341
|
|
|
335
342
|
equals(view.$('h1').text(), "$4", "precond - renders price");
|
|
336
343
|
|
|
337
|
-
view.setPath('coffee.price', "$5");
|
|
344
|
+
SC.run(function() { view.setPath('coffee.price', "$5"); });
|
|
338
345
|
|
|
339
346
|
equals(view.$('h1').text(), "$5", "updates when property changes");
|
|
340
347
|
|
|
341
|
-
view.set('coffee', { price: "$6" });
|
|
348
|
+
SC.run(function() { view.set('coffee', { price: "$6" }); });
|
|
342
349
|
equals(view.$('h1').text(), "$6", "updates when parent property changes");
|
|
343
350
|
});
|
|
344
351
|
|
|
@@ -354,7 +361,7 @@ test("Template updates correctly if a path is passed to the bind helper and the
|
|
|
354
361
|
price: "$4"
|
|
355
362
|
});
|
|
356
363
|
|
|
357
|
-
controller.set('content', realObject);
|
|
364
|
+
SC.run(function() { controller.set('content', realObject); });
|
|
358
365
|
|
|
359
366
|
var view = SC.TemplateView.create({
|
|
360
367
|
templateName: 'menu',
|
|
@@ -367,7 +374,7 @@ test("Template updates correctly if a path is passed to the bind helper and the
|
|
|
367
374
|
|
|
368
375
|
equals(view.$('h1').text(), "$4", "precond - renders price");
|
|
369
376
|
|
|
370
|
-
realObject.set('price', "$5");
|
|
377
|
+
SC.run(function() { realObject.set('price', "$5"); });
|
|
371
378
|
|
|
372
379
|
equals(view.$('h1').text(), "$5", "updates when property is set on real object");
|
|
373
380
|
|
|
@@ -891,7 +898,7 @@ test("should be able to bind class attribute with {{bindAttr}}", function() {
|
|
|
891
898
|
});
|
|
892
899
|
|
|
893
900
|
test("should be able to bind boolean element attributes using {{bindAttr}}", function() {
|
|
894
|
-
var template = SC.Handlebars.compile('<input type="
|
|
901
|
+
var template = SC.Handlebars.compile('<input type="checkbox" {{bindAttr disabled="content.isDisabled" checked="content.isChecked"}} />');
|
|
895
902
|
var content = SC.Object.create({
|
|
896
903
|
isDisabled: false,
|
|
897
904
|
isChecked: true
|
|
@@ -907,8 +914,10 @@ test("should be able to bind boolean element attributes using {{bindAttr}}", fun
|
|
|
907
914
|
ok(!view.$('input').attr('disabled'), 'attribute does not exist upon initial render');
|
|
908
915
|
ok(view.$('input').attr('checked'), 'attribute is present upon initial render');
|
|
909
916
|
|
|
910
|
-
|
|
911
|
-
|
|
917
|
+
SC.run(function() {
|
|
918
|
+
content.set('isDisabled', true);
|
|
919
|
+
content.set('isChecked', false);
|
|
920
|
+
});
|
|
912
921
|
|
|
913
922
|
ok(view.$('input').attr('disabled'), 'attribute exists after update');
|
|
914
923
|
ok(!view.$('input').attr('checked'), 'attribute is not present after update');
|
|
@@ -931,7 +940,9 @@ test("should be able to add multiple classes using {{bindAttr class}}", function
|
|
|
931
940
|
ok(view.$('div').hasClass('is-awesome-sauce'), "dasherizes first property and sets classname");
|
|
932
941
|
ok(view.$('div').hasClass('is-also-cool'), "dasherizes second property and sets classname");
|
|
933
942
|
|
|
934
|
-
|
|
943
|
+
SC.run(function() {
|
|
944
|
+
content.set('isAwesomeSauce', false);
|
|
945
|
+
});
|
|
935
946
|
|
|
936
947
|
ok(!view.$('div').hasClass('is-awesome-sauce'), "removes dasherized class when property is set to false");
|
|
937
948
|
});
|
|
@@ -115,3 +115,14 @@ test("notifies receiver and each child if parent clipping frame changes", functi
|
|
|
115
115
|
// number.
|
|
116
116
|
equals(callCount, 2, 'should invoke observer on child and nested child');
|
|
117
117
|
});
|
|
118
|
+
|
|
119
|
+
test("returns 0, 0, W, H if parentView has no clippingFrame", function(){
|
|
120
|
+
a.clippingFrame = null;
|
|
121
|
+
|
|
122
|
+
var targetFrame = aa.get('clippingFrame');
|
|
123
|
+
|
|
124
|
+
equals(targetFrame.x, 0, "x should be 0");
|
|
125
|
+
equals(targetFrame.y, 0, "y should be 0");
|
|
126
|
+
equals(targetFrame.width, 40, "width should be 40");
|
|
127
|
+
equals(targetFrame.height, 40, "height should be 40");
|
|
128
|
+
});
|
data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js
CHANGED
|
@@ -21,6 +21,7 @@ module("SC.View#didAppendToDocument", {
|
|
|
21
21
|
context.push('new string');
|
|
22
22
|
},
|
|
23
23
|
didAppendToDocument: function(){
|
|
24
|
+
ok(document.getElementById(this.get('layerId')), "view layer should exist");
|
|
24
25
|
counter++;
|
|
25
26
|
}
|
|
26
27
|
})
|
|
@@ -30,6 +31,7 @@ module("SC.View#didAppendToDocument", {
|
|
|
30
31
|
|
|
31
32
|
additionalView = SC.View.create({
|
|
32
33
|
didAppendToDocument: function(){
|
|
34
|
+
ok(document.getElementById(this.get('layerId')), "additionalView layer should exist");
|
|
33
35
|
counter++;
|
|
34
36
|
}
|
|
35
37
|
});
|
|
@@ -59,11 +61,12 @@ test("Check that didAppendToDocument gets called at the right moment", function(
|
|
|
59
61
|
equals(counter, 3, "");
|
|
60
62
|
});
|
|
61
63
|
|
|
64
|
+
|
|
62
65
|
// Test for bug: when a childView has a non-fixed layout and we request its frame before the parentView has
|
|
63
66
|
// a layer and the parentView uses static layout, then the frame returned will be {x: 0, y:0, width: 0, height: 0}
|
|
64
67
|
// and any further requests for the childView's frame will not return a new value unless the parentViewDidChange
|
|
65
68
|
// or parentViewDidResize. A weird case, but we prevent it from failing anyhow.
|
|
66
|
-
test("Check that childView is updated if
|
|
69
|
+
test("Check that childView is updated if the pane has a static layout and view doesn't have a fixed layout", function() {
|
|
67
70
|
var childFrame,
|
|
68
71
|
wrongFrame = {x:0, y:0, width: 0, height: 0},
|
|
69
72
|
correctFrame;
|
|
@@ -80,4 +83,17 @@ test("Check that childView is updated if we have static layout and they don't ha
|
|
|
80
83
|
correctFrame = pane.get('frame');
|
|
81
84
|
|
|
82
85
|
same(childFrame, correctFrame, 'getting frame after layer exists on non-fixed layout childView should return actual frame');
|
|
83
|
-
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
test("Check that childView is updated if it has a static layout", function() {
|
|
90
|
+
var childFrame,
|
|
91
|
+
wrongFrame = {x:0, y:0, width: 0, height: 0},
|
|
92
|
+
correctFrame;
|
|
93
|
+
|
|
94
|
+
view.set('useStaticLayout', YES);
|
|
95
|
+
|
|
96
|
+
equals(counter, 0, "precond - has not been called yet");
|
|
97
|
+
pane.append(); // make sure there is a layer...
|
|
98
|
+
equals(counter, 1, "didAppendToDocument was called once");
|
|
99
|
+
});
|
|
@@ -80,7 +80,7 @@ test("invokes willAddChild() on receiver if defined before adding child" ,functi
|
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
parent.insertBefore(child, otherChild);
|
|
83
|
-
|
|
83
|
+
equals(callCount, 1, 'invoked');
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
test("invokes willAddToParent() on child view if defined before adding child" ,function() {
|
|
@@ -102,7 +102,7 @@ test("invokes willAddToParent() on child view if defined before adding child" ,f
|
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
parent.insertBefore(child, otherChild);
|
|
105
|
-
|
|
105
|
+
equals(callCount, 1, 'invoked');
|
|
106
106
|
});
|
|
107
107
|
|
|
108
108
|
test("invokes didAddChild() on receiver if defined after adding child" ,function() {
|
|
@@ -122,9 +122,11 @@ test("invokes didAddChild() on receiver if defined after adding child" ,function
|
|
|
122
122
|
callCount++;
|
|
123
123
|
};
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
SC.RunLoop.begin();
|
|
126
126
|
parent.insertBefore(child, otherChild);
|
|
127
|
-
|
|
127
|
+
SC.RunLoop.end();
|
|
128
|
+
|
|
129
|
+
equals(callCount, 1, 'invoked');
|
|
128
130
|
});
|
|
129
131
|
|
|
130
132
|
test("invokes didAddToParent() on child view if defined after adding child" ,function() {
|
|
@@ -144,9 +146,11 @@ test("invokes didAddToParent() on child view if defined after adding child" ,fun
|
|
|
144
146
|
callCount++;
|
|
145
147
|
};
|
|
146
148
|
|
|
147
|
-
|
|
149
|
+
SC.RunLoop.begin();
|
|
148
150
|
parent.insertBefore(child, otherChild);
|
|
149
|
-
|
|
151
|
+
SC.RunLoop.end();
|
|
152
|
+
|
|
153
|
+
equals(callCount, 1, 'invoked');
|
|
150
154
|
});
|
|
151
155
|
|
|
152
156
|
test("invokes parentViewDidChange() on child view. this is used by the view internals to update layer loc", function() {
|
|
@@ -4,7 +4,18 @@
|
|
|
4
4
|
// ©2008-2011 Apple Inc. All rights reserved.
|
|
5
5
|
// License: Licensed under MIT license (see license.js)
|
|
6
6
|
// ==========================================================================
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
var originalTabbing;
|
|
9
|
+
|
|
10
|
+
module("SC.View - Keyboard support with Tabbing Only Inside Document", {
|
|
11
|
+
setup: function(){
|
|
12
|
+
originalTabbing = SC.TABBING_ONLY_INSIDE_DOCUMENT;
|
|
13
|
+
SC.TABBING_ONLY_INSIDE_DOCUMENT = YES;
|
|
14
|
+
},
|
|
15
|
+
teardown: function(){
|
|
16
|
+
SC.TABBING_ONLY_INSIDE_DOCUMENT = originalTabbing;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
8
19
|
|
|
9
20
|
test("Views only attempt to call performKeyEquivalent on child views that support it", function() {
|
|
10
21
|
var performKeyEquivalentCalled = 0;
|
|
@@ -26,3 +37,405 @@ test("Views only attempt to call performKeyEquivalent on child views that suppor
|
|
|
26
37
|
|
|
27
38
|
ok(performKeyEquivalentCalled > 0, "performKeyEquivalent is called on the view that supports it");
|
|
28
39
|
});
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
nextValidKeyView tests
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
test("nextValidKeyView is receiver if it is the only view that acceptsFirstResponder", function() {
|
|
46
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
47
|
+
pane = SC.Pane.create({
|
|
48
|
+
childViews: ['view1', 'view2'],
|
|
49
|
+
|
|
50
|
+
view1: SC.View.extend({
|
|
51
|
+
childViews: ['view3', 'view4'],
|
|
52
|
+
|
|
53
|
+
view3: SC.View,
|
|
54
|
+
|
|
55
|
+
view4: testView
|
|
56
|
+
}),
|
|
57
|
+
|
|
58
|
+
view2: SC.View.extend({
|
|
59
|
+
childViews: ['view5', 'view6'],
|
|
60
|
+
|
|
61
|
+
view5: SC.View,
|
|
62
|
+
|
|
63
|
+
view6: SC.View
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// fake the pane being attached
|
|
68
|
+
pane.set('isPaneAttached', YES);
|
|
69
|
+
pane.recomputeIsVisibleInWindow();
|
|
70
|
+
|
|
71
|
+
equals(pane.view1.view4.get('nextValidKeyView'), pane.view1.view4, "nextValidKeyView is receiver");
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test("nextValidKeyView is null if no views have acceptsFirstResponder === YES", function() {
|
|
75
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
76
|
+
pane = SC.Pane.create({
|
|
77
|
+
childViews: ['view1', 'view2'],
|
|
78
|
+
|
|
79
|
+
view1: SC.View.extend({
|
|
80
|
+
childViews: ['view3', 'view4'],
|
|
81
|
+
|
|
82
|
+
view3: SC.View,
|
|
83
|
+
|
|
84
|
+
view4: SC.View
|
|
85
|
+
}),
|
|
86
|
+
|
|
87
|
+
view2: SC.View.extend({
|
|
88
|
+
childViews: ['view5', 'view6'],
|
|
89
|
+
|
|
90
|
+
view5: SC.View,
|
|
91
|
+
|
|
92
|
+
view6: SC.View
|
|
93
|
+
})
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
// fake the pane being attached
|
|
97
|
+
pane.set('isPaneAttached', YES);
|
|
98
|
+
pane.recomputeIsVisibleInWindow();
|
|
99
|
+
|
|
100
|
+
ok(SC.none(pane.view1.view4.get('nextValidKeyView')), "nextValidKeyView is null");
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
test("firstKeyView and nextKeyView of parents are respected", function() {
|
|
104
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
105
|
+
pane = SC.Pane.create({
|
|
106
|
+
childViews: ['view1', 'view2', 'view7'],
|
|
107
|
+
|
|
108
|
+
view1: SC.View.extend({
|
|
109
|
+
childViews: ['view3', 'view4'],
|
|
110
|
+
|
|
111
|
+
view3: testView,
|
|
112
|
+
|
|
113
|
+
view4: testView
|
|
114
|
+
}),
|
|
115
|
+
|
|
116
|
+
view2: SC.View.extend({
|
|
117
|
+
childViews: ['view5', 'view6'],
|
|
118
|
+
|
|
119
|
+
view5: testView,
|
|
120
|
+
|
|
121
|
+
view6: testView
|
|
122
|
+
}),
|
|
123
|
+
|
|
124
|
+
view7: SC.View.extend({
|
|
125
|
+
childViews: ['view8', 'view9'],
|
|
126
|
+
|
|
127
|
+
view8: testView,
|
|
128
|
+
|
|
129
|
+
view9: testView
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
// fake the pane being attached
|
|
134
|
+
pane.set('isPaneAttached', YES);
|
|
135
|
+
pane.recomputeIsVisibleInWindow();
|
|
136
|
+
|
|
137
|
+
equals(pane.view2.view6.get('nextValidKeyView'), pane.view7.view8, "order is correct when first and next not set");
|
|
138
|
+
|
|
139
|
+
pane.set('firstKeyView', pane.view2);
|
|
140
|
+
pane.view2.set('nextKeyView', pane.view1);
|
|
141
|
+
pane.view1.set('nextKeyView', pane.view7);
|
|
142
|
+
|
|
143
|
+
equals(pane.view2.view6.get('nextValidKeyView'), pane.view1.view3, "order is respected when first and next are set");
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
test("nextValidKeyView is chosen correctly when nextKeyView is not a sibling", function() {
|
|
147
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
148
|
+
pane = SC.Pane.create({
|
|
149
|
+
childViews: ['view1', 'view2'],
|
|
150
|
+
|
|
151
|
+
view1: SC.View.extend({
|
|
152
|
+
childViews: ['view3', 'view4'],
|
|
153
|
+
|
|
154
|
+
view3: SC.View,
|
|
155
|
+
|
|
156
|
+
view4: testView
|
|
157
|
+
}),
|
|
158
|
+
|
|
159
|
+
view2: SC.View.extend({
|
|
160
|
+
childViews: ['view5', 'view6'],
|
|
161
|
+
|
|
162
|
+
view5: testView,
|
|
163
|
+
|
|
164
|
+
view6: SC.View
|
|
165
|
+
})
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
// fake the pane being attached
|
|
169
|
+
pane.set('isPaneAttached', YES);
|
|
170
|
+
pane.recomputeIsVisibleInWindow();
|
|
171
|
+
|
|
172
|
+
pane.view1.view4.set('nextKeyView', pane.view2.view5);
|
|
173
|
+
pane.view2.view5.set('nextKeyView', pane.view1.view4);
|
|
174
|
+
|
|
175
|
+
equals(pane.view1.view4.get('nextValidKeyView'), pane.view2.view5, "nextValidKeyView is correct");
|
|
176
|
+
equals(pane.view2.view5.get('nextValidKeyView'), pane.view1.view4, "nextValidKeyView is correct");
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
test("nextValidKeyView is chosen correctly when child of parent's previous sibling has nextKeyView set", function() {
|
|
180
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
181
|
+
pane = SC.Pane.create({
|
|
182
|
+
childViews: ['view1', 'view2'],
|
|
183
|
+
|
|
184
|
+
view1: SC.View.extend({
|
|
185
|
+
childViews: ['view3', 'view4'],
|
|
186
|
+
|
|
187
|
+
view3: testView,
|
|
188
|
+
|
|
189
|
+
view4: testView
|
|
190
|
+
}),
|
|
191
|
+
|
|
192
|
+
view2: SC.View.extend({
|
|
193
|
+
childViews: ['view5', 'view6'],
|
|
194
|
+
|
|
195
|
+
view5: testView,
|
|
196
|
+
|
|
197
|
+
view6: testView
|
|
198
|
+
})
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
pane.view1.view3.set('nextKeyView', pane.view1.view4);
|
|
202
|
+
|
|
203
|
+
// fake the pane being attached
|
|
204
|
+
pane.set('isPaneAttached', YES);
|
|
205
|
+
pane.recomputeIsVisibleInWindow();
|
|
206
|
+
|
|
207
|
+
equals(pane.view2.view5.get('nextValidKeyView'), pane.view2.view6, "nextValidKeyView chosen is next sibling");
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
test("nextValidKeyView checks for acceptsFirstResponder", function() {
|
|
211
|
+
var pane = SC.Pane.create({
|
|
212
|
+
childViews: ['view1', 'view2'],
|
|
213
|
+
|
|
214
|
+
view1: SC.View.extend({
|
|
215
|
+
acceptsFirstResponder: YES
|
|
216
|
+
}),
|
|
217
|
+
|
|
218
|
+
view2: SC.View.extend({
|
|
219
|
+
acceptsFirstResponder: NO
|
|
220
|
+
})
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
pane.view1.set('nextKeyView', pane.view2);
|
|
224
|
+
|
|
225
|
+
// fake the pane being attached
|
|
226
|
+
pane.set('isPaneAttached', YES);
|
|
227
|
+
pane.recomputeIsVisibleInWindow();
|
|
228
|
+
|
|
229
|
+
ok(pane.view1.get('nextValidKeyView') !== pane.view2, "nextValidKeyView is not nextKeyView because nextKeyView acceptsFirstResponder === NO");
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
test("nextValidKeyView prioritizes parent's lastKeyView even if nextKeyView is set", function() {
|
|
233
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
234
|
+
pane = SC.Pane.create({
|
|
235
|
+
childViews: ['view1', 'view2'],
|
|
236
|
+
|
|
237
|
+
view1: SC.View.extend({
|
|
238
|
+
childViews: ['view3', 'view4'],
|
|
239
|
+
|
|
240
|
+
lastKeyView: function() {
|
|
241
|
+
return this.view3;
|
|
242
|
+
}.property(),
|
|
243
|
+
|
|
244
|
+
view3: testView,
|
|
245
|
+
|
|
246
|
+
view4: testView
|
|
247
|
+
}),
|
|
248
|
+
|
|
249
|
+
view2: SC.View.extend({
|
|
250
|
+
childViews: ['view5', 'view6'],
|
|
251
|
+
|
|
252
|
+
view5: testView,
|
|
253
|
+
|
|
254
|
+
view6: testView
|
|
255
|
+
})
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
// fake the pane being attached
|
|
259
|
+
pane.set('isPaneAttached', YES);
|
|
260
|
+
pane.recomputeIsVisibleInWindow();
|
|
261
|
+
|
|
262
|
+
equals(pane.view1.view3.get('nextValidKeyView'), pane.view2.view5, "lastKeyView was respected; views after lastKeyView were skipped");
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
previousValidKeyView tests
|
|
267
|
+
*/
|
|
268
|
+
|
|
269
|
+
test("previousValidKeyView is receiver if it is the only view that acceptsFirstResponder", function() {
|
|
270
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
271
|
+
pane = SC.Pane.create({
|
|
272
|
+
childViews: ['view1', 'view2'],
|
|
273
|
+
|
|
274
|
+
view1: SC.View.extend({
|
|
275
|
+
childViews: ['view3', 'view4'],
|
|
276
|
+
|
|
277
|
+
view3: SC.View,
|
|
278
|
+
|
|
279
|
+
view4: testView
|
|
280
|
+
}),
|
|
281
|
+
|
|
282
|
+
view2: SC.View.extend({
|
|
283
|
+
childViews: ['view5', 'view6'],
|
|
284
|
+
|
|
285
|
+
view5: SC.View,
|
|
286
|
+
|
|
287
|
+
view6: SC.View
|
|
288
|
+
})
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
// fake the pane being attached
|
|
292
|
+
pane.set('isPaneAttached', YES);
|
|
293
|
+
pane.recomputeIsVisibleInWindow();
|
|
294
|
+
|
|
295
|
+
equals(pane.view1.view4.get('previousValidKeyView'), pane.view1.view4, "previousValidKeyView is receiver");
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
test("previousValidKeyView is null if no views have acceptsFirstResponder === YES", function() {
|
|
299
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
300
|
+
pane = SC.Pane.create({
|
|
301
|
+
childViews: ['view1', 'view2'],
|
|
302
|
+
|
|
303
|
+
view1: SC.View.extend({
|
|
304
|
+
childViews: ['view3', 'view4'],
|
|
305
|
+
|
|
306
|
+
view3: SC.View,
|
|
307
|
+
|
|
308
|
+
view4: SC.View
|
|
309
|
+
}),
|
|
310
|
+
|
|
311
|
+
view2: SC.View.extend({
|
|
312
|
+
childViews: ['view5', 'view6'],
|
|
313
|
+
|
|
314
|
+
view5: SC.View,
|
|
315
|
+
|
|
316
|
+
view6: SC.View
|
|
317
|
+
})
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
// fake the pane being attached
|
|
321
|
+
pane.set('isPaneAttached', YES);
|
|
322
|
+
pane.recomputeIsVisibleInWindow();
|
|
323
|
+
|
|
324
|
+
ok(SC.none(pane.view1.view4.get('previousValidKeyView')), "previousValidKeyView is null");
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
test("lastKeyView and previousKeyView of parents are respected", function() {
|
|
328
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
329
|
+
pane = SC.Pane.create({
|
|
330
|
+
childViews: ['view1', 'view2', 'view7'],
|
|
331
|
+
|
|
332
|
+
view1: SC.View.extend({
|
|
333
|
+
childViews: ['view3', 'view4'],
|
|
334
|
+
|
|
335
|
+
view3: testView,
|
|
336
|
+
|
|
337
|
+
view4: testView
|
|
338
|
+
}),
|
|
339
|
+
|
|
340
|
+
view2: SC.View.extend({
|
|
341
|
+
childViews: ['view5', 'view6'],
|
|
342
|
+
|
|
343
|
+
view5: testView,
|
|
344
|
+
|
|
345
|
+
view6: testView
|
|
346
|
+
}),
|
|
347
|
+
|
|
348
|
+
view7: SC.View.extend({
|
|
349
|
+
childViews: ['view8', 'view9'],
|
|
350
|
+
|
|
351
|
+
view8: testView,
|
|
352
|
+
|
|
353
|
+
view9: testView
|
|
354
|
+
})
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
// fake the pane being attached
|
|
358
|
+
pane.set('isPaneAttached', YES);
|
|
359
|
+
pane.recomputeIsVisibleInWindow();
|
|
360
|
+
|
|
361
|
+
equals(pane.view2.view5.get('previousValidKeyView'), pane.view1.view4, "order is correct when last and previous not set");
|
|
362
|
+
|
|
363
|
+
pane.set('lastKeyView', pane.view2);
|
|
364
|
+
pane.view2.set('previousKeyView', pane.view7);
|
|
365
|
+
pane.view1.set('previousKeyView', pane.view1);
|
|
366
|
+
|
|
367
|
+
equals(pane.view2.view5.get('previousValidKeyView'), pane.view7.view9, "order is respected when last and previous are set");
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
test("previousValidKeyView is chosen correctly when previousKeyView is not a sibling", function() {
|
|
371
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
372
|
+
pane = SC.Pane.create({
|
|
373
|
+
childViews: ['view1', 'view2'],
|
|
374
|
+
|
|
375
|
+
view1: SC.View.extend({
|
|
376
|
+
childViews: ['view3', 'view4'],
|
|
377
|
+
|
|
378
|
+
view3: SC.View,
|
|
379
|
+
|
|
380
|
+
view4: testView
|
|
381
|
+
}),
|
|
382
|
+
|
|
383
|
+
view2: SC.View.extend({
|
|
384
|
+
childViews: ['view5', 'view6'],
|
|
385
|
+
|
|
386
|
+
view5: testView,
|
|
387
|
+
|
|
388
|
+
view6: SC.View
|
|
389
|
+
})
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
// fake the pane being attached
|
|
393
|
+
pane.set('isPaneAttached', YES);
|
|
394
|
+
pane.recomputeIsVisibleInWindow();
|
|
395
|
+
|
|
396
|
+
pane.view1.view4.set('previousKeyView', pane.view2.view5);
|
|
397
|
+
pane.view2.view5.set('previousKeyView', pane.view1.view4);
|
|
398
|
+
|
|
399
|
+
equals(pane.view1.view4.get('previousValidKeyView'), pane.view2.view5, "previousValidKeyView is correct");
|
|
400
|
+
equals(pane.view2.view5.get('previousValidKeyView'), pane.view1.view4, "previousValidKeyView is correct");
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
test("previousValidKeyView prioritizes parent's firstKeyView even if previousKeyView is set", function() {
|
|
404
|
+
var testView = SC.View.extend({acceptsFirstResponder: YES}),
|
|
405
|
+
pane = SC.Pane.create({
|
|
406
|
+
childViews: ['view1', 'view2'],
|
|
407
|
+
|
|
408
|
+
view1: SC.View.extend({
|
|
409
|
+
childViews: ['view3', 'view4'],
|
|
410
|
+
|
|
411
|
+
view3: testView,
|
|
412
|
+
|
|
413
|
+
view4: testView
|
|
414
|
+
}),
|
|
415
|
+
|
|
416
|
+
view2: SC.View.extend({
|
|
417
|
+
childViews: ['view5', 'view6'],
|
|
418
|
+
|
|
419
|
+
firstKeyView: function() {
|
|
420
|
+
return this.view6;
|
|
421
|
+
}.property(),
|
|
422
|
+
|
|
423
|
+
view5: testView,
|
|
424
|
+
|
|
425
|
+
view6: testView
|
|
426
|
+
})
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
// fake the pane being attached
|
|
430
|
+
pane.set('isPaneAttached', YES);
|
|
431
|
+
pane.recomputeIsVisibleInWindow();
|
|
432
|
+
|
|
433
|
+
equals(pane.view2.view6.get('previousValidKeyView'), pane.view1.view4, "firstKeyView was respected; views before firstKeyView were skipped");
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
module("SC.View - Keyboard support with Tabbing Outside of Document");
|
|
438
|
+
|
|
439
|
+
test("forward tab with no next responder moves out of document");
|
|
440
|
+
|
|
441
|
+
test("backwards tab with no previous responder moves out of document");
|