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
|
@@ -56,7 +56,7 @@ test("it still works with the backward compatible theme property when extending"
|
|
|
56
56
|
}.observes('theme')
|
|
57
57
|
});
|
|
58
58
|
|
|
59
|
-
view = View.create();
|
|
59
|
+
var view = View.create();
|
|
60
60
|
equals(SC.Theme.find('sc-base'), view.get('theme'));
|
|
61
61
|
view.set('themeName', 'hello');
|
|
62
62
|
equals(1, count, "theme observers should get called");
|
|
@@ -11,7 +11,8 @@ sc_require('views/template');
|
|
|
11
11
|
set up. When the associated property changes, just the template for this view
|
|
12
12
|
will re-render.
|
|
13
13
|
*/
|
|
14
|
-
SC._BindableSpan = SC.TemplateView.extend(
|
|
14
|
+
SC._BindableSpan = SC.TemplateView.extend(
|
|
15
|
+
/** @scope SC._BindableSpan.prototype */{
|
|
15
16
|
/**
|
|
16
17
|
The type of HTML tag to use. To ensure compatibility with
|
|
17
18
|
Internet Explorer 7, a <span> tag is used to ensure that inline elements are
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
sc_require('views/template');
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/** @class
|
|
4
|
+
|
|
5
|
+
@author Tom Dale
|
|
6
|
+
@author Yehuda Katz
|
|
7
|
+
@extends SC.TemplateView
|
|
8
|
+
@since SproutCore 1.5
|
|
9
|
+
*/
|
|
10
|
+
SC.TemplateCollectionView = SC.TemplateView.extend(
|
|
11
|
+
/** @scope SC.TemplateCollectionView.prototype */{
|
|
12
|
+
/**
|
|
13
|
+
Name of the tag that is used for the collection
|
|
14
|
+
|
|
15
|
+
If the tag is a list ('ul' or 'ol') each item will be wrapped into a 'li' tag.
|
|
16
|
+
If the tag is a table ('table', 'thead', 'tbody') each item will be wrapped into a 'tr' tag.
|
|
17
|
+
|
|
18
|
+
@property {String}
|
|
19
|
+
@default ul
|
|
20
|
+
*/
|
|
4
21
|
tagName: 'ul',
|
|
5
22
|
content: null,
|
|
6
23
|
template: SC.Handlebars.compile(''),
|
|
@@ -21,6 +38,12 @@ SC.TemplateCollectionView = SC.TemplateView.extend({
|
|
|
21
38
|
// In case a default content was set, trigger the child view creation
|
|
22
39
|
// as soon as the empty layer was created
|
|
23
40
|
didCreateLayer: function() {
|
|
41
|
+
// FIXME: didCreateLayer gets called multiple times when template collection
|
|
42
|
+
// views are nested - this is a hack to avoid rendering the content more
|
|
43
|
+
// than once.
|
|
44
|
+
if (this._sctcv_layerCreated) { return; }
|
|
45
|
+
this._sctcv_layerCreated = true;
|
|
46
|
+
|
|
24
47
|
var content = this.get('content');
|
|
25
48
|
if(content) {
|
|
26
49
|
this.arrayContentDidChange(0, 0, content.get('length'));
|
|
@@ -55,6 +78,37 @@ SC.TemplateCollectionView = SC.TemplateView.extend({
|
|
|
55
78
|
*/
|
|
56
79
|
itemViewTemplateName: null,
|
|
57
80
|
|
|
81
|
+
/**
|
|
82
|
+
A template to render when there is no content or the content length is 0.
|
|
83
|
+
*/
|
|
84
|
+
inverseTemplate: function(key, value) {
|
|
85
|
+
if (value !== undefined) {
|
|
86
|
+
return value;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
var templateName = this.get('inverseTemplateName'),
|
|
90
|
+
template = this.get('templates').get(templateName);
|
|
91
|
+
|
|
92
|
+
if (!template) {
|
|
93
|
+
//@if(debug)
|
|
94
|
+
if (templateName) {
|
|
95
|
+
SC.Logger.warn('%@ - Unable to find template "%@".'.fmt(this, templateName));
|
|
96
|
+
}
|
|
97
|
+
//@endif
|
|
98
|
+
|
|
99
|
+
return function() { return ''; };
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return template;
|
|
103
|
+
}.property('inverseTemplateName').cacheable(),
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
The name of a template to lookup if no inverse template is provided.
|
|
107
|
+
|
|
108
|
+
@property {String}
|
|
109
|
+
*/
|
|
110
|
+
inverseTemplateName: null,
|
|
111
|
+
|
|
58
112
|
itemContext: null,
|
|
59
113
|
|
|
60
114
|
itemViewClass: function() {
|
|
@@ -127,9 +181,11 @@ SC.TemplateCollectionView = SC.TemplateView.extend({
|
|
|
127
181
|
}.observes('content'),
|
|
128
182
|
|
|
129
183
|
arrayContentWillChange: function(start, removedCount, addedCount) {
|
|
184
|
+
if (!this.get('layer')) { return; }
|
|
185
|
+
|
|
130
186
|
// If the contents were empty before and this template collection has an empty view
|
|
131
187
|
// remove it now.
|
|
132
|
-
emptyView = this.get('emptyView');
|
|
188
|
+
var emptyView = this.get('emptyView');
|
|
133
189
|
if (emptyView) { emptyView.$().remove(); emptyView.removeFromParent(); }
|
|
134
190
|
|
|
135
191
|
// Loop through child views that correspond with the removed items.
|
|
@@ -167,47 +223,49 @@ SC.TemplateCollectionView = SC.TemplateView.extend({
|
|
|
167
223
|
addedViews = [],
|
|
168
224
|
renderFunc, childView, itemOptions, elem, insertAtElement, item, itemElem, idx, len;
|
|
169
225
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
226
|
+
if (content) {
|
|
227
|
+
var addedObjects = content.slice(start, start+addedCount);
|
|
228
|
+
|
|
229
|
+
// If we have content to display, create a view for
|
|
230
|
+
// each item.
|
|
231
|
+
itemOptions = this.get('itemViewOptions') || {};
|
|
232
|
+
|
|
233
|
+
elem = this.$();
|
|
234
|
+
insertAtElement = elem.find('li')[start-1] || null;
|
|
235
|
+
len = addedObjects.get('length');
|
|
236
|
+
|
|
237
|
+
// TODO: This logic is duplicated from the view helper. Refactor
|
|
238
|
+
// it so we can share logic.
|
|
239
|
+
var itemAttrs = {
|
|
240
|
+
"id": itemOptions.id,
|
|
241
|
+
"class": itemOptions['class'],
|
|
242
|
+
"classBinding": itemOptions.classBinding
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
renderFunc = function(context) {
|
|
246
|
+
sc_super();
|
|
247
|
+
SC.Handlebars.ViewHelper.applyAttributes(itemAttrs, this, context);
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
itemOptions = SC.clone(itemOptions);
|
|
251
|
+
delete itemOptions.id;
|
|
252
|
+
delete itemOptions['class'];
|
|
253
|
+
delete itemOptions.classBinding;
|
|
197
254
|
|
|
198
255
|
for (idx = 0; idx < len; idx++) {
|
|
199
256
|
item = addedObjects.objectAt(idx);
|
|
200
|
-
|
|
257
|
+
childView = this.createChildView(itemViewClass.extend(itemOptions, {
|
|
201
258
|
content: item,
|
|
202
|
-
render: renderFunc
|
|
259
|
+
render: renderFunc,
|
|
260
|
+
tagName: itemViewClass.prototype.tagName || this.get('itemTagName')
|
|
203
261
|
}));
|
|
204
262
|
|
|
205
|
-
var contextProperty =
|
|
263
|
+
var contextProperty = childView.get('contextProperty');
|
|
206
264
|
if (contextProperty) {
|
|
207
|
-
|
|
265
|
+
childView.set('context', childView.get(contextProperty));
|
|
208
266
|
}
|
|
209
267
|
|
|
210
|
-
itemElem =
|
|
268
|
+
itemElem = childView.createLayer().$();
|
|
211
269
|
if (!insertAtElement) {
|
|
212
270
|
elem.append(itemElem);
|
|
213
271
|
} else {
|
|
@@ -215,20 +273,21 @@ SC.TemplateCollectionView = SC.TemplateView.extend({
|
|
|
215
273
|
}
|
|
216
274
|
insertAtElement = itemElem;
|
|
217
275
|
|
|
218
|
-
addedViews.push(
|
|
276
|
+
addedViews.push(childView);
|
|
219
277
|
}
|
|
220
278
|
|
|
221
|
-
|
|
279
|
+
childViews.replace(start, 0, addedViews);
|
|
280
|
+
}
|
|
222
281
|
|
|
223
282
|
var inverseTemplate = this.get('inverseTemplate');
|
|
224
283
|
if (childViews.get('length') === 0 && inverseTemplate) {
|
|
225
|
-
|
|
284
|
+
childView = this.createChildView(SC.TemplateView.extend({
|
|
226
285
|
template: inverseTemplate,
|
|
227
286
|
content: this
|
|
228
287
|
}));
|
|
229
|
-
this.set('emptyView',
|
|
230
|
-
|
|
231
|
-
this.childViews = [
|
|
288
|
+
this.set('emptyView', childView);
|
|
289
|
+
childView.createLayer().$().appendTo(elem);
|
|
290
|
+
this.childViews = [childView];
|
|
232
291
|
}
|
|
233
292
|
|
|
234
293
|
// Because the layer has been modified, we need to invalidate the frame
|
|
@@ -237,6 +296,19 @@ SC.TemplateCollectionView = SC.TemplateView.extend({
|
|
|
237
296
|
this.invokeLast('invalidateFrame');
|
|
238
297
|
},
|
|
239
298
|
|
|
299
|
+
itemTagName: function() {
|
|
300
|
+
switch(this.get('tagName')) {
|
|
301
|
+
case 'ul':
|
|
302
|
+
case 'ol':
|
|
303
|
+
return 'li';
|
|
304
|
+
case 'table':
|
|
305
|
+
case 'thead':
|
|
306
|
+
case 'tbody':
|
|
307
|
+
case 'tfoot':
|
|
308
|
+
return 'tr';
|
|
309
|
+
}
|
|
310
|
+
}.property('tagName'),
|
|
311
|
+
|
|
240
312
|
invalidateFrame: function() {
|
|
241
313
|
this.notifyPropertyChange('frame');
|
|
242
314
|
}
|
|
@@ -24,7 +24,7 @@ SC.CONTEXT_MENU_ENABLED = YES;
|
|
|
24
24
|
Default property to disable or enable if the focus can jump to the address
|
|
25
25
|
bar or not.
|
|
26
26
|
*/
|
|
27
|
-
SC.TABBING_ONLY_INSIDE_DOCUMENT =
|
|
27
|
+
SC.TABBING_ONLY_INSIDE_DOCUMENT = NO;
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
Tells the property (when fetched with themed()) to get its value from the renderer (if any).
|
|
@@ -674,7 +674,12 @@ SC.CoreView.reopen(
|
|
|
674
674
|
|
|
675
675
|
if (this.get('isTextSelectable')) { context.addClass('allow-select'); }
|
|
676
676
|
if (!this.get('isVisible')) { context.addClass('sc-hidden'); }
|
|
677
|
-
if (this.get('isFirstResponder')) {
|
|
677
|
+
if (this.get('isFirstResponder')) {
|
|
678
|
+
context.addClass('focus');
|
|
679
|
+
context.attr('tabindex', '0');
|
|
680
|
+
}else{
|
|
681
|
+
context.attr('tabindex', '-1');
|
|
682
|
+
}
|
|
678
683
|
|
|
679
684
|
context.id(this.get('layerId'));
|
|
680
685
|
context.attr('role', this.get('ariaRole'));
|
|
@@ -999,7 +1004,7 @@ SC.CoreView.reopen(
|
|
|
999
1004
|
pv = this.get('parentView');
|
|
1000
1005
|
if (pv) {
|
|
1001
1006
|
cf = pv.get('clippingFrame');
|
|
1002
|
-
if (!cf) return f;
|
|
1007
|
+
if (!cf) return { x: 0, y: 0, width: f.width, height: f.height};
|
|
1003
1008
|
ret = SC.intersectRects(cf, f);
|
|
1004
1009
|
}
|
|
1005
1010
|
ret.x -= f.x;
|
|
@@ -1236,7 +1241,7 @@ SC.CoreView.reopen(
|
|
|
1236
1241
|
|
|
1237
1242
|
});
|
|
1238
1243
|
|
|
1239
|
-
SC.CoreView.mixin(/** @scope SC.
|
|
1244
|
+
SC.CoreView.mixin(/** @scope SC.CoreView.prototype */ {
|
|
1240
1245
|
|
|
1241
1246
|
/** @private walk like a duck -- used by SC.Page */
|
|
1242
1247
|
isViewClass: YES,
|
|
@@ -1252,9 +1257,9 @@ SC.CoreView.mixin(/** @scope SC.View.prototype */ {
|
|
|
1252
1257
|
*/
|
|
1253
1258
|
design: function() {
|
|
1254
1259
|
if (this.isDesign) {
|
|
1255
|
-
|
|
1260
|
+
// @if (debug)
|
|
1256
1261
|
SC.Logger.warn("SC.View#design called twice for %@.".fmt(this));
|
|
1257
|
-
|
|
1262
|
+
// @endif
|
|
1258
1263
|
return this;
|
|
1259
1264
|
}
|
|
1260
1265
|
|
|
@@ -1472,7 +1477,8 @@ SC.CoreView.unload = function() {
|
|
|
1472
1477
|
2. They act as first responders for incoming keyboard, mouse, and
|
|
1473
1478
|
touch events.
|
|
1474
1479
|
|
|
1475
|
-
|
|
1480
|
+
View Initialization
|
|
1481
|
+
====
|
|
1476
1482
|
|
|
1477
1483
|
When a view is setup, there are several methods you can override that
|
|
1478
1484
|
will be called at different times depending on how your view is created.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
sc_require("views/view");
|
|
2
2
|
|
|
3
|
-
SC.View.reopen(
|
|
3
|
+
SC.View.reopen(
|
|
4
|
+
/** @scope SC.View.prototype */ {
|
|
4
5
|
// ..........................................................
|
|
5
6
|
// KEY RESPONDER
|
|
6
7
|
//
|
|
@@ -38,13 +39,20 @@ SC.View.reopen({
|
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
Invokved just after the responder loses key responder status.
|
|
42
|
+
@param {SC.Responder} responder
|
|
41
43
|
*/
|
|
42
44
|
didLoseKeyResponderTo: function(responder) {},
|
|
43
45
|
|
|
44
46
|
/**
|
|
45
47
|
Invoked just after the responder gains key responder status.
|
|
48
|
+
By default, it calls focus on the view root element. For accessibility
|
|
49
|
+
purposes.
|
|
50
|
+
|
|
51
|
+
@param {SC.Responder} responder
|
|
46
52
|
*/
|
|
47
|
-
didBecomeKeyResponderFrom: function(responder) {
|
|
53
|
+
didBecomeKeyResponderFrom: function(responder) {
|
|
54
|
+
this.$().focus();
|
|
55
|
+
},
|
|
48
56
|
|
|
49
57
|
/**
|
|
50
58
|
This method will process a key input event, attempting to convert it to
|
|
@@ -124,100 +132,270 @@ SC.View.reopen({
|
|
|
124
132
|
return ret ;
|
|
125
133
|
},
|
|
126
134
|
|
|
135
|
+
/**
|
|
136
|
+
The first child of this view for the purposes of tab ordering. If not
|
|
137
|
+
provided, the first element of childViews is used. Override this if
|
|
138
|
+
your view displays its child views in an order different from that
|
|
139
|
+
given in childViews.
|
|
140
|
+
|
|
141
|
+
@type SC.View
|
|
142
|
+
@default null
|
|
143
|
+
*/
|
|
144
|
+
firstKeyView: null,
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
@private
|
|
148
|
+
|
|
149
|
+
Actually calculates the firstKeyView as described in firstKeyView.
|
|
150
|
+
|
|
151
|
+
@returns {SC.View}
|
|
152
|
+
*/
|
|
153
|
+
_getFirstKeyView: function() {
|
|
154
|
+
// if first was given, just return it
|
|
155
|
+
var firstKeyView = this.get('firstKeyView');
|
|
156
|
+
if(firstKeyView) return firstKeyView;
|
|
157
|
+
|
|
158
|
+
// otherwise return the first childView
|
|
159
|
+
var childViews = this.get('childViews');
|
|
160
|
+
if(childViews) return childViews[0];
|
|
161
|
+
},
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
The last child of this view for the purposes of tab ordering. If not set, can be generated two different ways:
|
|
165
|
+
1. If firstKeyView is provided, it will be generated by starting from firstKeyView and traversing the childViews nextKeyView properties.
|
|
166
|
+
2. If firstKeyView is not provided, it will simply return the last element of childViews.
|
|
167
|
+
|
|
168
|
+
The first way is not very efficient, so if you provide firstKeyView you should also provide lastKeyView.
|
|
169
|
+
|
|
170
|
+
@type SC.View
|
|
171
|
+
@default null
|
|
172
|
+
*/
|
|
173
|
+
lastKeyView: null,
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
@private
|
|
177
|
+
|
|
178
|
+
Actually calculates the lastKeyView as described in lastKeyView.
|
|
179
|
+
|
|
180
|
+
@returns {SC.View}
|
|
181
|
+
*/
|
|
182
|
+
_getLastKeyView: function() {
|
|
183
|
+
// if last was given, just return it
|
|
184
|
+
var lastKeyView = this.get('lastKeyView');
|
|
185
|
+
if(lastKeyView) return lastKeyView;
|
|
186
|
+
|
|
187
|
+
var view,
|
|
188
|
+
prev = this.get('firstKeyView');
|
|
189
|
+
|
|
190
|
+
// if first was given but not last, build by starting from first and
|
|
191
|
+
// traversing until we hit the end. this is obviously the least efficient
|
|
192
|
+
// way
|
|
193
|
+
if(prev) {
|
|
194
|
+
while(view = prev._getNextKeyView()) {
|
|
195
|
+
prev = view;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return prev;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// if neither was given, it's more efficient to just return the last
|
|
202
|
+
// childView
|
|
203
|
+
else {
|
|
204
|
+
var childViews = this.get('childViews');
|
|
205
|
+
|
|
206
|
+
if(childViews) return childViews[childViews.length - 1];
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
|
|
127
210
|
/**
|
|
128
211
|
Optionally points to the next key view that should gain focus when tabbing
|
|
129
212
|
through an interface. If this is not set, then the next key view will
|
|
130
|
-
be set automatically to the next
|
|
213
|
+
be set automatically to the next sibling as defined by its parent's
|
|
214
|
+
childViews property.
|
|
215
|
+
|
|
216
|
+
If any views define this, all of their siblings should define it as well,
|
|
217
|
+
otherwise undefined behavior may occur. Their parent view should also define
|
|
218
|
+
a firstKeyView.
|
|
219
|
+
|
|
220
|
+
This may also be set to a view that is not a sibling, but once again all
|
|
221
|
+
views in the chain must define it or undefined behavior will occur.
|
|
222
|
+
|
|
223
|
+
Likewise, any view that sets nextKeyView should also set previousKeyView.
|
|
224
|
+
|
|
225
|
+
@type SC.View
|
|
226
|
+
@default null
|
|
131
227
|
*/
|
|
132
|
-
|
|
228
|
+
|
|
229
|
+
nextKeyView: undefined,
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
@private
|
|
233
|
+
|
|
234
|
+
Gets the next key view by checking if the user set it and otherwise just
|
|
235
|
+
getting the next by index in childViews.
|
|
236
|
+
|
|
237
|
+
@return {SC.View}
|
|
238
|
+
*/
|
|
239
|
+
_getNextKeyView: function() {
|
|
240
|
+
var pv = this.get('parentView'),
|
|
241
|
+
nextKeyView = this.get('nextKeyView');
|
|
242
|
+
|
|
243
|
+
// if the parent defines lastKeyView, it takes priority over this views
|
|
244
|
+
// nextKeyView
|
|
245
|
+
if(pv && pv.get('lastKeyView') === this) return null;
|
|
246
|
+
|
|
247
|
+
// if this view defines a nextKeyView, use it
|
|
248
|
+
if(nextKeyView !== undefined) return nextKeyView;
|
|
249
|
+
|
|
250
|
+
// otherwise generate one based on parent view's childViews
|
|
251
|
+
if(pv) {
|
|
252
|
+
var childViews = pv.get('childViews');
|
|
253
|
+
return childViews[childViews.indexOf(this) + 1];
|
|
254
|
+
}
|
|
255
|
+
},
|
|
133
256
|
|
|
134
257
|
/**
|
|
135
|
-
Computes the next valid key view
|
|
136
|
-
|
|
258
|
+
Computes the next valid key view. This is the next key view that
|
|
259
|
+
acceptsFirstResponder. Computed using depth first search. If the current view
|
|
260
|
+
is not valid, it will first traverse its children before trying siblings. If
|
|
261
|
+
the current view is the only valid view, the current view will be returned. Will
|
|
262
|
+
return null if no valid view can be found.
|
|
137
263
|
|
|
138
264
|
@property
|
|
139
265
|
@type SC.View
|
|
140
266
|
*/
|
|
141
267
|
nextValidKeyView: function() {
|
|
142
|
-
var
|
|
143
|
-
rootView = this.get('pane'), ret = this.get('nextKeyView');
|
|
268
|
+
var cur = this, next;
|
|
144
269
|
|
|
145
|
-
|
|
270
|
+
while(next !== this) {
|
|
271
|
+
next = null;
|
|
146
272
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
273
|
+
// only bother to check children if we are visible
|
|
274
|
+
if(cur.get('isVisibleInWindow')) next = cur._getFirstKeyView();
|
|
150
275
|
|
|
151
|
-
|
|
152
|
-
|
|
276
|
+
// if we have no children, check our sibling
|
|
277
|
+
if(!next) next = cur._getNextKeyView();
|
|
153
278
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
if (!ret) {
|
|
165
|
-
children = this.get('childViews');
|
|
166
|
-
for(i=0, childLen = children.length; i<childLen; i++){
|
|
167
|
-
child = children[i];
|
|
168
|
-
if(child._computeNextValidKeyView && child.get('isVisibleInWindow') && child.get('isVisible')){
|
|
169
|
-
ret = child._computeNextValidKeyView(currentView, seen);
|
|
170
|
-
}
|
|
171
|
-
if (ret) { return ret; }
|
|
279
|
+
// if we have no children or siblings, unroll up closest parent that has a
|
|
280
|
+
// next sibling
|
|
281
|
+
if(!next) while(cur = cur.get('parentView')) {
|
|
282
|
+
if(next = cur._getNextKeyView()) break;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// if no parents have a next sibling, start over from the beginning
|
|
286
|
+
if(!next) {
|
|
287
|
+
if(!SC.TABBING_ONLY_INSIDE_DOCUMENT) break;
|
|
288
|
+
else next = this.get('pane');
|
|
172
289
|
}
|
|
173
|
-
|
|
290
|
+
|
|
291
|
+
// if it's a valid firstResponder, we're done!
|
|
292
|
+
if(next.get('isVisibleInWindow') && next.get('acceptsFirstResponder')) return next;
|
|
293
|
+
|
|
294
|
+
// otherwise keep looking
|
|
295
|
+
cur = next;
|
|
174
296
|
}
|
|
175
|
-
|
|
176
|
-
|
|
297
|
+
|
|
298
|
+
// this will only happen if no views are visible and accept first responder
|
|
299
|
+
return null;
|
|
300
|
+
}.property('nextKeyView'),
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
Optionally points to the previous key view that should gain focus when tabbing
|
|
304
|
+
through an interface. If this is not set, then the previous key view will
|
|
305
|
+
be set automatically to the previous sibling as defined by its parent's
|
|
306
|
+
childViews property.
|
|
307
|
+
|
|
308
|
+
If any views define this, all of their siblings should define it as well,
|
|
309
|
+
otherwise undefined behavior may occur. Their parent view should also define
|
|
310
|
+
a lastKeyView.
|
|
311
|
+
|
|
312
|
+
This may also be set to a view that is not a sibling, but once again all
|
|
313
|
+
views in the chain must define it or undefined behavior will occur.
|
|
314
|
+
|
|
315
|
+
Likewise, any view that sets previousKeyView should also set nextKeyView.
|
|
316
|
+
|
|
317
|
+
@type SC.View
|
|
318
|
+
@default null
|
|
319
|
+
*/
|
|
320
|
+
previousKeyView: undefined,
|
|
177
321
|
|
|
178
322
|
/**
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
key view
|
|
323
|
+
@private
|
|
324
|
+
|
|
325
|
+
Gets the previous key view by checking if the user set it and otherwise just
|
|
326
|
+
getting the previous by index in childViews.
|
|
327
|
+
|
|
328
|
+
@return {SC.View}
|
|
182
329
|
*/
|
|
183
|
-
|
|
330
|
+
_getPreviousKeyView: function() {
|
|
331
|
+
var pv = this.get('parentView'),
|
|
332
|
+
previousKeyView = this.get('previousKeyView');
|
|
333
|
+
|
|
334
|
+
// if the parent defines firstKeyView, it takes priority over this views
|
|
335
|
+
// previousKeyView
|
|
336
|
+
if(pv && pv.get('firstKeyView') === this) return null;
|
|
337
|
+
|
|
338
|
+
// if this view defines a previousKeyView, use it
|
|
339
|
+
if(previousKeyView !== undefined) return previousKeyView;
|
|
340
|
+
|
|
341
|
+
// otherwise generate one based on parent view's childViews
|
|
342
|
+
if(pv) {
|
|
343
|
+
var childViews = pv.get('childViews');
|
|
344
|
+
return childViews[childViews.indexOf(this) - 1];
|
|
345
|
+
}
|
|
346
|
+
},
|
|
184
347
|
|
|
185
348
|
/**
|
|
186
|
-
Computes the previous valid key view
|
|
187
|
-
|
|
349
|
+
Computes the previous valid key view. This is the previous key view that
|
|
350
|
+
acceptsFirstResponder. Traverse views in the opposite order from
|
|
351
|
+
nextValidKeyView. If the current view is the pane, tries deepest child. If the
|
|
352
|
+
current view has a previous view, tries its last child. If this view is the
|
|
353
|
+
first child, tries the parent. Will return null if no valid view can be
|
|
354
|
+
found.
|
|
188
355
|
|
|
189
356
|
@property
|
|
190
357
|
@type SC.View
|
|
191
358
|
*/
|
|
359
|
+
// TODO: clean this up
|
|
192
360
|
previousValidKeyView: function() {
|
|
193
|
-
var
|
|
194
|
-
rootView = this.pane(), ret = this.get('previousKeyView');
|
|
195
|
-
if(!ret) { ret = rootView._computePreviousValidKeyView(this, seen); }
|
|
196
|
-
return ret ;
|
|
197
|
-
}.property('previousKeyView'),
|
|
361
|
+
var cur = this, prev;
|
|
198
362
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
363
|
+
while(prev !== this) {
|
|
364
|
+
// normally, just try to get previous view's last child
|
|
365
|
+
if(cur.get('parentView')) prev = cur._getPreviousKeyView();
|
|
202
366
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
if
|
|
367
|
+
// if we are the pane and address bar tabbing is enabled, trigger it now
|
|
368
|
+
else if(!SC.TABBING_ONLY_INSIDE_DOCUMENT) break;
|
|
369
|
+
|
|
370
|
+
// if we are the pane, get our own last child
|
|
371
|
+
else prev = cur;
|
|
372
|
+
|
|
373
|
+
// loop down to the last valid child
|
|
374
|
+
if(prev) {
|
|
375
|
+
do {
|
|
376
|
+
cur = prev;
|
|
377
|
+
prev = prev._getLastKeyView();
|
|
378
|
+
} while(prev && prev.get('isVisibleInWindow'));
|
|
379
|
+
|
|
380
|
+
// if we ended on a null, unroll to the last one
|
|
381
|
+
// we don't unroll if we ended on a hidden view because we need
|
|
382
|
+
// to traverse to its previous view next iteration
|
|
383
|
+
if(!prev) prev = cur;
|
|
218
384
|
}
|
|
219
|
-
|
|
385
|
+
|
|
386
|
+
// if there is no previous view, traverse to the parent
|
|
387
|
+
else prev = cur.get('parentView');
|
|
388
|
+
|
|
389
|
+
// if the view is valid, return it
|
|
390
|
+
if(prev.get('isVisibleInWindow') && prev.get('acceptsFirstResponder')) return prev;
|
|
391
|
+
|
|
392
|
+
// otherwise, try to find its previous valid keyview
|
|
393
|
+
cur = prev;
|
|
220
394
|
}
|
|
221
|
-
|
|
222
|
-
|
|
395
|
+
|
|
396
|
+
// if none of the views accept first responder and we make it back to where
|
|
397
|
+
// we started, just return null
|
|
398
|
+
return null;
|
|
399
|
+
}.property('previousKeyView')
|
|
223
400
|
});
|
|
401
|
+
|