sproutit-sproutcore 1.0.0.20090407205609 → 1.0.0.20090408130025
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/frameworks/sproutcore/Buildfile +63 -0
- data/frameworks/sproutcore/HISTORY +682 -0
- data/frameworks/sproutcore/README +22 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/controllers/docs.js +149 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/core.js +16 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.css +17 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.js +99 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/main.js +27 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/models/doc.js +21 -0
- data/frameworks/sproutcore/apps/sc_qunit/controllers/runner.js +209 -0
- data/frameworks/sproutcore/apps/sc_qunit/core.js +16 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.css +17 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.js +107 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/sc_qunit/main.js +18 -0
- data/frameworks/sproutcore/apps/sc_qunit/models/test.js +24 -0
- data/frameworks/sproutcore/apps/sc_qunit/views/test_iframe.js +52 -0
- data/frameworks/sproutcore/apps/tests/controllers/targets.js +47 -0
- data/frameworks/sproutcore/apps/tests/controllers/test.js +20 -0
- data/frameworks/sproutcore/apps/tests/controllers/tests.js +38 -0
- data/frameworks/sproutcore/apps/tests/core.js +35 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/loading.rhtml +9 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +19 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +86 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/strings.js +17 -0
- data/frameworks/sproutcore/apps/tests/fixtures/target.js +43 -0
- data/frameworks/sproutcore/apps/tests/fixtures/test.js +43 -0
- data/frameworks/sproutcore/apps/tests/main.js +39 -0
- data/frameworks/sproutcore/apps/tests/models/target.js +49 -0
- data/frameworks/sproutcore/apps/tests/models/test.js +20 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/test.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/models/target.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/models/test.js +15 -0
- data/frameworks/sproutcore/apps/welcome/core.js +23 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/loading.rhtml +8 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +43 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/welcome/main.js +36 -0
- data/frameworks/sproutcore/design/Design Charts.graffle +15819 -0
- data/frameworks/sproutcore/design/Record State Table.numbers +0 -0
- data/frameworks/sproutcore/frameworks/datastore/core.js +14 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +113 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +256 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +196 -0
- data/frameworks/sproutcore/frameworks/datastore/debug/json.js +71 -0
- data/frameworks/sproutcore/frameworks/datastore/debug/standard_setup.js +96 -0
- data/frameworks/sproutcore/frameworks/datastore/fixtures/author_fixtures.js +2503 -0
- data/frameworks/sproutcore/frameworks/datastore/fixtures/sample.js +17 -0
- data/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +92 -0
- data/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +38 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record.js +430 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +361 -0
- data/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +305 -0
- data/frameworks/sproutcore/frameworks/datastore/system/query.js +128 -0
- data/frameworks/sproutcore/frameworks/datastore/system/record_array.js +149 -0
- data/frameworks/sproutcore/frameworks/datastore/system/store.js +1689 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +86 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +114 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/mail_model.js +91 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/test_runner_model.js +56 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +73 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +48 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +42 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +138 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +46 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +71 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +115 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +40 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +116 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +135 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +110 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +99 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +180 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +163 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +166 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +175 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +54 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +127 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +57 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +78 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +247 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +106 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/init.js +21 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +61 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readEditableDataHash.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +144 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +137 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +130 -0
- data/frameworks/sproutcore/frameworks/debug/core.js +1 -0
- data/frameworks/sproutcore/frameworks/deprecated/core.js +61 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/button_views.rb +330 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/collection_view.rb +83 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/core_views.rb +326 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/form_views.rb +253 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/index.rhtml +75 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/menu_views.rb +93 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/rails_server.js +80 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/rest_server.js +178 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/server.js +674 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/animator.js +679 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/binding.js +36 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/browser.js +77 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/classic_responder.js +314 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/event.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/globals.js +20 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/misc.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/node_descriptor.js +72 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/object.js +124 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/path_module.js +433 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/string.js +109 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/application/application.rhtml +125 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/clippingFrame.rhtml +401 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/frame.rhtml +357 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/isVisibleInWindow.rhtml +147 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/base.rhtml +298 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/incremental_rendering.rhtml +260 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/source_list_rendering.rhtml +143 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/popup_button.rhtml +128 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/text_field.rhtml +37 -0
- data/frameworks/sproutcore/frameworks/deprecated/views/collection.js +24 -0
- data/frameworks/sproutcore/frameworks/designer/coders/design.js +30 -0
- data/frameworks/sproutcore/frameworks/designer/coders/localization.js +28 -0
- data/frameworks/sproutcore/frameworks/designer/coders/object.js +347 -0
- data/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +102 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_rule.js +22 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_style.js +29 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_style_sheet.js +201 -0
- data/frameworks/sproutcore/frameworks/designer/ext/page.js +88 -0
- data/frameworks/sproutcore/frameworks/designer/ext/view.js +40 -0
- data/frameworks/sproutcore/frameworks/designer/views/controls/button.js +18 -0
- data/frameworks/sproutcore/frameworks/designer/views/designer.js +553 -0
- data/frameworks/sproutcore/frameworks/designer/views/label.js +17 -0
- data/frameworks/sproutcore/frameworks/designer/views/mixins/button.js +13 -0
- data/frameworks/sproutcore/frameworks/designer/views/tab.js +17 -0
- data/frameworks/sproutcore/frameworks/desktop/core.js +6 -0
- data/frameworks/sproutcore/frameworks/desktop/debug/drag.js +41 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +56 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/a_sample_image.jpg +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/apple-logo1.jpeg +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/iframe.html +23 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +71 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +943 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_222222.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_454545.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_888888.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_ffffff.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/indicator.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-x.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-y.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/000000.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/ffffff.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sticky-note.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +156 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +83 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +99 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/palette.css +3 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +94 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +39 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +31 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +10 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/scroller.css +26 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +141 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +19 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +57 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split.css +70 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split_divider.css +8 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +14 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/tab.css +12 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/text_field.css +29 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/toolbar.css +6 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/border.js +53 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +22 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_item.js +22 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +226 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +247 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +377 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/menu.js +504 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/modal.js +68 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/palette.js +63 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/panel.js +184 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/picker.js +402 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +46 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +39 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +81 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +175 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +280 -0
- data/frameworks/sproutcore/frameworks/desktop/system/drag.js +721 -0
- data/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +641 -0
- data/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +187 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +43 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +152 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +57 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +36 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +80 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +38 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +45 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +140 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +145 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +99 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +39 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +64 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/ui.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui.js +110 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +255 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +44 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +128 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +240 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +113 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +202 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +139 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +111 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/methods.js +63 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/ui.js +70 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +94 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +206 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +81 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +85 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/ui.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +50 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +52 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +54 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +88 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/methods.js +76 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/ui.js +198 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +110 -0
- data/frameworks/sproutcore/frameworks/desktop/views/button.js +320 -0
- data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +98 -0
- data/frameworks/sproutcore/frameworks/desktop/views/collection.js +2141 -0
- data/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +44 -0
- data/frameworks/sproutcore/frameworks/desktop/views/form.js +595 -0
- data/frameworks/sproutcore/frameworks/desktop/views/grid.js +199 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list.js +706 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +523 -0
- data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +437 -0
- data/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +62 -0
- data/frameworks/sproutcore/frameworks/desktop/views/progress.js +207 -0
- data/frameworks/sproutcore/frameworks/desktop/views/radio.js +332 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scene.js +56 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +648 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroller.js +203 -0
- data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +509 -0
- data/frameworks/sproutcore/frameworks/desktop/views/select_field.js +292 -0
- data/frameworks/sproutcore/frameworks/desktop/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/views/slider.js +178 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list.js +1117 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +169 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split.js +651 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +55 -0
- data/frameworks/sproutcore/frameworks/desktop/views/tab.js +190 -0
- data/frameworks/sproutcore/frameworks/desktop/views/text_field.js +233 -0
- data/frameworks/sproutcore/frameworks/desktop/views/thumb.js +49 -0
- data/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +49 -0
- data/frameworks/sproutcore/frameworks/desktop/views/web.js +86 -0
- data/frameworks/sproutcore/frameworks/foundation/TESTING +46 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/array.js +490 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +317 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/object.js +421 -0
- data/frameworks/sproutcore/frameworks/foundation/core.js +111 -0
- data/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +172 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +53 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +55 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +8 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/static_layout.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +40 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/object.js +81 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/fixtures/file_exists.json +1 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +291 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +88 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/control.js +352 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +146 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/responder.js +156 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +154 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +101 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/string.js +237 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +176 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/main.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +555 -0
- data/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +84 -0
- data/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +244 -0
- data/frameworks/sproutcore/frameworks/foundation/system/browser.js +64 -0
- data/frameworks/sproutcore/frameworks/foundation/system/builder.js +210 -0
- data/frameworks/sproutcore/frameworks/foundation/system/core_query.js +2015 -0
- data/frameworks/sproutcore/frameworks/foundation/system/cursor.js +129 -0
- data/frameworks/sproutcore/frameworks/foundation/system/error.js +93 -0
- data/frameworks/sproutcore/frameworks/foundation/system/event.js +817 -0
- data/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +433 -0
- data/frameworks/sproutcore/frameworks/foundation/system/json.js +440 -0
- data/frameworks/sproutcore/frameworks/foundation/system/locale.js +288 -0
- data/frameworks/sproutcore/frameworks/foundation/system/page.js +106 -0
- data/frameworks/sproutcore/frameworks/foundation/system/ready.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +865 -0
- data/frameworks/sproutcore/frameworks/foundation/system/request.js +255 -0
- data/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +368 -0
- data/frameworks/sproutcore/frameworks/foundation/system/routes.js +446 -0
- data/frameworks/sproutcore/frameworks/foundation/system/time.js +478 -0
- data/frameworks/sproutcore/frameworks/foundation/system/timer.js +549 -0
- data/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/system/utils.js +330 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array.js +118 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/controller.js +268 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object.js +433 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/ui.js +113 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/integration/creating_views.js +113 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/content.js +195 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/displayProperties.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/content.js +168 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/builder.js +42 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +1323 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +387 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +405 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +49 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/within.js +66 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/error.js +41 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/json.js +14 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/locale.js +128 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/begin.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/element.js +44 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/end.js +119 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +51 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +50 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +28 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +179 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +100 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/init.js +55 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/join.js +28 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/push_text.js +74 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/tag.js +45 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +205 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeKeyPane.js +124 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMainPane.js +68 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +97 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/targetForAction.js +238 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +33 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invalidate.js +38 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invokeLater.js +201 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/isPaused.js +71 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/performAction.js +67 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +170 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +27 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/normalizeURL.js +18 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/range.js +62 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/credit_card.js +35 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +21 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/number.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/password.js +13 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +39 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/main_pane.js +31 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/firstResponder.js +148 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/keyPane.js +133 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendEvent.js +165 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +132 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +246 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +87 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createLayer.js +97 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/destroyLayer.js +85 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +52 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/init.js +50 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/insertBefore.js +200 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +102 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layer.js +150 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutChildViews.js +162 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutDidChange.js +127 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +248 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/parentViewDidChange.js +67 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +166 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/removeChild.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/render.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/replaceChild.js +29 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +142 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +194 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +185 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +125 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/date.js +52 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/email.js +45 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +33 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/number.js +82 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/password.js +86 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/validator.js +311 -0
- data/frameworks/sproutcore/frameworks/foundation/views/container.js +136 -0
- data/frameworks/sproutcore/frameworks/foundation/views/field.js +276 -0
- data/frameworks/sproutcore/frameworks/foundation/views/image.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/views/label.js +261 -0
- data/frameworks/sproutcore/frameworks/foundation/views/view.js +2160 -0
- data/frameworks/sproutcore/frameworks/mobile/english.lproj/core.css +12 -0
- data/frameworks/sproutcore/frameworks/mobile/lib/index.rhtml +126 -0
- data/frameworks/sproutcore/frameworks/mobile/system/root_responder.js +109 -0
- data/frameworks/sproutcore/frameworks/mobile/tests/views/button/ui.js +9 -0
- data/frameworks/sproutcore/frameworks/mobile/views/button.js +190 -0
- data/frameworks/sproutcore/frameworks/runtime/README +11 -0
- data/frameworks/sproutcore/frameworks/runtime/core.js +777 -0
- data/frameworks/sproutcore/frameworks/runtime/license.js +28 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/array.js +403 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +70 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1193 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1149 -0
- data/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +135 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +108 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +128 -0
- data/frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js +131 -0
- data/frameworks/sproutcore/frameworks/runtime/system/binding.js +891 -0
- data/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +107 -0
- data/frameworks/sproutcore/frameworks/runtime/system/object.js +783 -0
- data/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +99 -0
- data/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +214 -0
- data/frameworks/sproutcore/frameworks/runtime/system/set.js +246 -0
- data/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +286 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +56 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/beget.js +23 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +66 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +147 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/inspect.js +27 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +25 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +38 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +20 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +30 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +19 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +37 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +592 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +467 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +123 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +79 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +80 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/array.js +263 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +190 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +135 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +339 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +120 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +313 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +84 -0
- data/frameworks/sproutcore/frameworks/testing/core.js +13 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/additions.css +8 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/testsuite.css +131 -0
- data/frameworks/sproutcore/frameworks/testing/extras.js +43 -0
- data/frameworks/sproutcore/frameworks/testing/jquery.js +3559 -0
- data/frameworks/sproutcore/frameworks/testing/qunit.js +819 -0
- data/frameworks/sproutcore/frameworks/testing/tests/debug/qunit.js +25 -0
- data/frameworks/sproutcore/frameworks/testing/utils.js +55 -0
- data/frameworks/sproutcore/lib/index.rhtml +118 -0
- data/frameworks/sproutcore/license.js +28 -0
- data/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +69 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/button.css +41 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +8 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/backButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/blueButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/cancel.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/grayButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/leftButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrow.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrowSel.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listGroup.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/loading.gif +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/pinstripes.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/rightButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/selection.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/thumb.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggle.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggleOn.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolbar.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/whiteButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/button.css +333 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/checkbox.css +90 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/collection.css +53 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/core.css +47 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/disclosure.css +55 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-ysprite.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-toolbar-view.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/label.css +37 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +8 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-fat.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-thin.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-left-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/left-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/overlay.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/right-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-left-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/progress.css +23 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/radio.css +113 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +141 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/slider.css +62 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/split_view.css +27 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/tab.css +12 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/text_field.css +13 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/toolbar.css +4 -0
- data/lib/thor/.autotest +7 -0
- data/lib/thor/CHANGELOG.rdoc +52 -0
- data/lib/thor/LICENSE +20 -0
- data/lib/thor/README.markdown +76 -0
- data/lib/thor/Rakefile +6 -0
- data/lib/thor/Thorfile +45 -0
- data/lib/thor/bin/rake2thor +83 -0
- data/lib/thor/bin/thor +7 -0
- data/lib/thor/lib/thor/error.rb +3 -0
- data/lib/thor/lib/thor/options.rb +267 -0
- data/lib/thor/lib/thor/ordered_hash.rb +64 -0
- data/lib/thor/lib/thor/runner.rb +305 -0
- data/lib/thor/lib/thor/task.rb +83 -0
- data/lib/thor/lib/thor/task_hash.rb +22 -0
- data/lib/thor/lib/thor/tasks/package.rb +18 -0
- data/lib/thor/lib/thor/tasks.rb +77 -0
- data/lib/thor/lib/thor/util.rb +75 -0
- data/lib/thor/lib/thor.rb +170 -0
- data/lib/thor/script/destroy +14 -0
- data/lib/thor/script/generate +14 -0
- data/lib/thor/spec/fixtures/task.thor +10 -0
- data/lib/thor/spec/options_spec.rb +271 -0
- data/lib/thor/spec/ordered_hash_spec.rb +84 -0
- data/lib/thor/spec/spec.opts +1 -0
- data/lib/thor/spec/spec_helper.rb +30 -0
- data/lib/thor/spec/task_spec.rb +11 -0
- data/lib/thor/spec/tasks_spec.rb +28 -0
- data/lib/thor/spec/thor_runner_spec.rb +194 -0
- data/lib/thor/spec/thor_spec.rb +206 -0
- data/lib/thor/spec/util_spec.rb +99 -0
- data/lib/thor/task.thor +15 -0
- data/lib/thor/thor.gemspec +29 -0
- metadata +3 -4
- data/sproutcore.gemspec +0 -47
@@ -0,0 +1,255 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions ©2008-2009 Apple, Inc. All rights reserved.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
/*global ActiveXObject */
|
8
|
+
|
9
|
+
SC.Request = SC.Object.extend({
|
10
|
+
|
11
|
+
isAsynchronous: true,
|
12
|
+
rawResponse: null,
|
13
|
+
error: null,
|
14
|
+
transportClass: null,
|
15
|
+
isJSON: false,
|
16
|
+
|
17
|
+
init: function(){
|
18
|
+
sc_super() ;
|
19
|
+
|
20
|
+
this._headers = {};
|
21
|
+
},
|
22
|
+
|
23
|
+
header: function(key, value) {
|
24
|
+
if (typeof key == 'object' && !value) {
|
25
|
+
for (var headerKey in key) {
|
26
|
+
this.header(headerKey,key[headerKey]) ;
|
27
|
+
}
|
28
|
+
return this;
|
29
|
+
}
|
30
|
+
|
31
|
+
if (typeof key == 'string' && !value) {
|
32
|
+
return this._headers[key] ;
|
33
|
+
}
|
34
|
+
|
35
|
+
this.propertyWillChange('headers') ;
|
36
|
+
|
37
|
+
//set value for key
|
38
|
+
this._headers[key] = value ;
|
39
|
+
|
40
|
+
this.propertyDidChange('headers') ;
|
41
|
+
return this ;
|
42
|
+
},
|
43
|
+
|
44
|
+
send: function() {
|
45
|
+
var request = this ; // SC.clone(this) ;
|
46
|
+
SC.Request.manager.sendRequest(request) ;
|
47
|
+
return request ;
|
48
|
+
},
|
49
|
+
|
50
|
+
notify: function(target, action) {
|
51
|
+
if (SC.typeOf(action) === SC.T_STRING) action = target[action];
|
52
|
+
this.set('notifyTarget', target).set('notifyAction', action);
|
53
|
+
return this;
|
54
|
+
},
|
55
|
+
|
56
|
+
response: function() {
|
57
|
+
var response = this.get("rawResponse") ;
|
58
|
+
if (!response || !SC.$ok(response)) {
|
59
|
+
return response ;
|
60
|
+
}
|
61
|
+
|
62
|
+
if (this.get("isJSON")) {
|
63
|
+
var source = response.responseText ;
|
64
|
+
var json = SC.json.decode(source) ;
|
65
|
+
//TODO cache this value?
|
66
|
+
return json ;
|
67
|
+
}
|
68
|
+
|
69
|
+
if(response.responseXML) return response.responseXML ;
|
70
|
+
return response.responseText ;
|
71
|
+
}.property('rawResponse').cacheable()
|
72
|
+
|
73
|
+
});
|
74
|
+
|
75
|
+
SC.Request.getUrl = function(address) {
|
76
|
+
var req = SC.Request.create() ;
|
77
|
+
req.set('address', address) ;
|
78
|
+
req.set('type', 'GET') ;
|
79
|
+
|
80
|
+
return req ;
|
81
|
+
};
|
82
|
+
|
83
|
+
SC.Request.postUrl = function(address) {
|
84
|
+
var req = SC.Request.create() ;
|
85
|
+
req.set('address',address) ;
|
86
|
+
req.set('type', 'POST') ;
|
87
|
+
|
88
|
+
return req ;
|
89
|
+
};
|
90
|
+
|
91
|
+
SC.Request.manager = SC.Object.create( SC.DelegateSupport, {
|
92
|
+
maxRequests: 2,
|
93
|
+
|
94
|
+
currentRequests: [],
|
95
|
+
queue: [],
|
96
|
+
|
97
|
+
canLoadAnotherRequest: function() {
|
98
|
+
return (this.get('numberOfCurrentRequests') < this.get('maxRequests')) ;
|
99
|
+
}.property('numberOfCurrentRequests'),
|
100
|
+
|
101
|
+
numberOfCurrentRequests: function() {
|
102
|
+
return this.get('currentRequests').length ;
|
103
|
+
}.property('currentRequests'),
|
104
|
+
|
105
|
+
numberOfRequests: function() {
|
106
|
+
return this.get('queue').length ;
|
107
|
+
}.property('queue'),
|
108
|
+
|
109
|
+
sendRequest: function(request) {
|
110
|
+
if(!request) return;
|
111
|
+
|
112
|
+
request = {
|
113
|
+
request: request,
|
114
|
+
action: request.get('notifyAction'),
|
115
|
+
target: request.get('notifyTarget') };
|
116
|
+
|
117
|
+
this.propertyWillChange("queue");
|
118
|
+
this.get('queue').pushObject(request);
|
119
|
+
this.propertyDidChange("queue");
|
120
|
+
|
121
|
+
this.fireRequestIfNeeded();
|
122
|
+
},
|
123
|
+
|
124
|
+
fireRequestIfNeeded: function() {
|
125
|
+
if (this.canLoadAnotherRequest()) {
|
126
|
+
this.propertyWillChange('queue') ;
|
127
|
+
var item = this.get('queue').popObject() ;
|
128
|
+
this.propertyDidChange('queue') ;
|
129
|
+
|
130
|
+
if (item) {
|
131
|
+
var transportClass = item.request.get('transportClass') ;
|
132
|
+
if (!transportClass) transportClass = this.get('transportClass') ;
|
133
|
+
|
134
|
+
if (transportClass) {
|
135
|
+
var transport = this.transportClass.create(item) ;
|
136
|
+
if (transport) {
|
137
|
+
item.request.set('transport', transport) ;
|
138
|
+
this._transportDidOpen(transport) ;
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
}
|
143
|
+
},
|
144
|
+
|
145
|
+
_transportDidOpen: function(transport) {
|
146
|
+
this.propertyWillChange('currentRequests') ;
|
147
|
+
this.get('currentRequests').pushObject(transport) ;
|
148
|
+
this.propertyDidChange('currentRequests') ;
|
149
|
+
|
150
|
+
transport.fire() ;
|
151
|
+
},
|
152
|
+
|
153
|
+
transportDidClose: function(request) {
|
154
|
+
this.propertyWillChange('currentRequests') ;
|
155
|
+
this.get('currentRequests').removeObject(request) ;
|
156
|
+
this.propertyDidChange('currentRequests') ;
|
157
|
+
}
|
158
|
+
|
159
|
+
});
|
160
|
+
|
161
|
+
// abstract superclass, creates no-op objects
|
162
|
+
SC.RequestTransport = SC.Object.extend({
|
163
|
+
|
164
|
+
fire: function() {
|
165
|
+
SC.Request.manager.transportDidClose(this) ;
|
166
|
+
}
|
167
|
+
|
168
|
+
});
|
169
|
+
|
170
|
+
SC.XHRRequestTransport = SC.RequestTransport.extend({
|
171
|
+
|
172
|
+
fire: function() {
|
173
|
+
|
174
|
+
var tryThese = function() {
|
175
|
+
for (var i=0; i < arguments.length; i++) {
|
176
|
+
try {
|
177
|
+
var item = arguments[i]() ;
|
178
|
+
return item ;
|
179
|
+
} catch (e) {}
|
180
|
+
}
|
181
|
+
return NO;
|
182
|
+
};
|
183
|
+
|
184
|
+
var rawRequest = tryThese(
|
185
|
+
function() { return new XMLHttpRequest(); },
|
186
|
+
function() { return new ActiveXObject('Msxml2.XMLHTTP'); },
|
187
|
+
function() { return new ActiveXObject('Microsoft.XMLHTTP'); }
|
188
|
+
);
|
189
|
+
|
190
|
+
var request = this.get('request') ;
|
191
|
+
|
192
|
+
var headers = request.get('headers') ;
|
193
|
+
for (var headerKey in headers) {
|
194
|
+
rawRequest.setRequestHeader(headerKey, headers[headerKey]) ;
|
195
|
+
}
|
196
|
+
|
197
|
+
rawRequest.source = request;
|
198
|
+
|
199
|
+
var async = (request.get('isAsynchronous') ? YES : NO) ;
|
200
|
+
if (async) SC.Event.add(rawRequest, 'readystatechange', this, this.handleReadyStateChange, rawRequest) ;
|
201
|
+
|
202
|
+
rawRequest.open( request.get('type'), request.get('address'), async ) ;
|
203
|
+
rawRequest.send(request.get('body')) ;
|
204
|
+
|
205
|
+
if (!async) this.finishRequest(rawRequest) ;
|
206
|
+
|
207
|
+
return rawRequest ;
|
208
|
+
},
|
209
|
+
|
210
|
+
didSucceed: function(request) {
|
211
|
+
var status = null ;
|
212
|
+
try {
|
213
|
+
status = request.status || 0;
|
214
|
+
} catch (e) {}
|
215
|
+
return !status || (status >= 200 && status < 300) ;
|
216
|
+
},
|
217
|
+
|
218
|
+
finishRequest: function(request) {
|
219
|
+
var readyState = request.readyState ;
|
220
|
+
var didSucceed = !request ? NO : this.didSucceed(request) ;
|
221
|
+
|
222
|
+
if (readyState == 4) {
|
223
|
+
request._complete = YES ;
|
224
|
+
|
225
|
+
if (didSucceed) {
|
226
|
+
var response = request ;
|
227
|
+
request.source.set('rawResponse', response) ;
|
228
|
+
} else {
|
229
|
+
var error = SC.$error("HTTP Request failed", "Fail", -1) ;
|
230
|
+
error.set("request",request) ;
|
231
|
+
request.source.set('rawResponse', error) ;
|
232
|
+
}
|
233
|
+
|
234
|
+
if (this.target && this.action) {
|
235
|
+
SC.RunLoop.begin();
|
236
|
+
this.action.call(this.target, request.source);
|
237
|
+
SC.RunLoop.end();
|
238
|
+
}
|
239
|
+
|
240
|
+
SC.Request.manager.transportDidClose(this) ;
|
241
|
+
}
|
242
|
+
|
243
|
+
if (readyState == 4) {
|
244
|
+
// avoid memory leak in MSIE: clean up
|
245
|
+
request.onreadystatechange = function() {} ;
|
246
|
+
}
|
247
|
+
},
|
248
|
+
|
249
|
+
handleReadyStateChange: function(readyStateEvent) {
|
250
|
+
return this.finishRequest(readyStateEvent.context) ;
|
251
|
+
}
|
252
|
+
|
253
|
+
});
|
254
|
+
|
255
|
+
SC.Request.manager.set('transportClass', SC.XHRRequestTransport) ;
|
@@ -0,0 +1,368 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions ©2008-2009 Apple, Inc. All rights reserved.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
require('system/ready');
|
9
|
+
|
10
|
+
/** @class
|
11
|
+
|
12
|
+
The RootResponder captures events coming from a web browser and routes them
|
13
|
+
to the correct view in the view hierarchy. Usually you do not work with a
|
14
|
+
RootResponder directly. Instead you will work with Pane objects, which
|
15
|
+
register themselves with the RootResponder as needed to receive events.
|
16
|
+
|
17
|
+
h1. RootResponder and Platforms
|
18
|
+
|
19
|
+
RootResponder is implemented differently on the desktop and mobile platforms
|
20
|
+
using a technique called a "class cluster". That is, although you get a
|
21
|
+
RootResponder instance at some point, you will likely be working with a
|
22
|
+
subclass of RootResponder that implements functionality unique to that
|
23
|
+
platform.
|
24
|
+
|
25
|
+
The RootResponder you use depends on the active platform you have set and
|
26
|
+
the framework you have loaded.
|
27
|
+
|
28
|
+
h1. Event Types
|
29
|
+
|
30
|
+
RootResponders can route four types of events:
|
31
|
+
|
32
|
+
- Direct events. Such as mouse and touch events. These are routed to the
|
33
|
+
nearest view managing the target DOM elment.
|
34
|
+
- Keyboard events. These are sent to the keyPane, which will send it
|
35
|
+
to the current firstResponder.
|
36
|
+
- resize. This event is sent to all panes.
|
37
|
+
- shortcuts. Shortcuts are sent to the focusedPane first, which will go
|
38
|
+
down its view hierarchy. Then they go to the mainPane, which will go down
|
39
|
+
its view hierarchy. Then they go to the mainMenu. Usually any handler
|
40
|
+
that picks this up will then try to do a sendAction().
|
41
|
+
- actions. Actions are sent down the responder chain. They go to
|
42
|
+
focusedPane -> mainPane. Each of these will start at the firstResponder
|
43
|
+
and work their way up the chain.
|
44
|
+
|
45
|
+
Differences between Mobile + Desktop RootResponder
|
46
|
+
|
47
|
+
The Desktop root responder can deal with the following kinds of events:
|
48
|
+
mousedown, mouseup, mouseover, mouseout, mousemoved
|
49
|
+
*/
|
50
|
+
SC.RootResponder = SC.Object.extend({
|
51
|
+
|
52
|
+
/**
|
53
|
+
Contains a list of all panes currently visible on screen. Everytime a
|
54
|
+
pane attaches or detaches, it will update itself in this array.
|
55
|
+
*/
|
56
|
+
panes: null,
|
57
|
+
|
58
|
+
init: function() {
|
59
|
+
sc_super();
|
60
|
+
this.panes = SC.Set.create();
|
61
|
+
},
|
62
|
+
|
63
|
+
// .......................................................
|
64
|
+
// MAIN Pane
|
65
|
+
//
|
66
|
+
|
67
|
+
/** @property
|
68
|
+
The main pane. This pane receives shortcuts and actions if the
|
69
|
+
focusedPane does not respond to them. There can be only one main pane.
|
70
|
+
You can swap main panes by calling makeMainPane() here.
|
71
|
+
|
72
|
+
Usually you will not need to edit the main pane directly. Instead, you
|
73
|
+
should use a MainPane subclass, which will automatically make itself main
|
74
|
+
when you append it to the document.
|
75
|
+
*/
|
76
|
+
mainPane: null,
|
77
|
+
|
78
|
+
/**
|
79
|
+
Swaps the main pane. If the current main pane is also the key pane, then
|
80
|
+
the new main pane will also be made key view automatically. In addition
|
81
|
+
to simply updating the mainPane property, this method will also notify the
|
82
|
+
panes themselves that they will lose/gain their mainView status.
|
83
|
+
|
84
|
+
Note that this method does not actually change the Pane's place in the
|
85
|
+
document body. That will be handled by the Pane itself.
|
86
|
+
|
87
|
+
@param {SC.Pane} pane
|
88
|
+
@returns {SC.RootResponder} receiver
|
89
|
+
*/
|
90
|
+
makeMainPane: function(pane) {
|
91
|
+
var currentMain = this.get('mainPane') ;
|
92
|
+
if (currentMain === pane) return this ; // nothing to do
|
93
|
+
|
94
|
+
this.beginPropertyChanges() ;
|
95
|
+
|
96
|
+
// change key focus if needed.
|
97
|
+
if (this.get('keyPane') === currentMain) this.makeKeyPane(pane) ;
|
98
|
+
|
99
|
+
// change setting
|
100
|
+
this.set('mainPane', pane) ;
|
101
|
+
|
102
|
+
// notify panes. This will allow them to remove themselves.
|
103
|
+
if (currentMain) currentMain.blurMainTo(pane) ;
|
104
|
+
if (pane) pane.focusMainFrom(currentMain) ;
|
105
|
+
|
106
|
+
this.endPropertyChanges() ;
|
107
|
+
return this ;
|
108
|
+
},
|
109
|
+
|
110
|
+
// .......................................................
|
111
|
+
// KEY ROOT VIEW
|
112
|
+
//
|
113
|
+
|
114
|
+
/** @property
|
115
|
+
The current key pane. This pane receives keyboard events, shortcuts, and
|
116
|
+
actions first. This pane is usually the highest ordered pane or the
|
117
|
+
mainPane.
|
118
|
+
*/
|
119
|
+
keyPane: null,
|
120
|
+
|
121
|
+
/**
|
122
|
+
Makes the passed pane the new key pane. If you pass nil or if the pane
|
123
|
+
does not accept key focus, then key focus will transfer to the mainPane.
|
124
|
+
This will notify both the old pane and the new root View that key focus
|
125
|
+
has changed.
|
126
|
+
|
127
|
+
@param {SC.Pane} pane
|
128
|
+
@returns {SC.RootResponder} receiver
|
129
|
+
*/
|
130
|
+
makeKeyPane: function(pane) {
|
131
|
+
if (pane && !pane.get('acceptsKeyPane')) return this ;
|
132
|
+
|
133
|
+
// if null was passed, try to make mainPane key instead.
|
134
|
+
if (!pane) {
|
135
|
+
pane = this.get('mainPane') ;
|
136
|
+
if (pane && !pane.get('acceptsKeyPane')) pane = null ;
|
137
|
+
}
|
138
|
+
|
139
|
+
var current = this.get('keyPane') ;
|
140
|
+
if (current === pane) return this ; // nothing to do
|
141
|
+
|
142
|
+
// now notify old and new key views of change after edit
|
143
|
+
if (current) current.willLoseKeyPaneTo(pane) ;
|
144
|
+
if (pane) pane.willBecomeKeyPaneFrom(current) ;
|
145
|
+
|
146
|
+
this.set('keyPane', pane) ;
|
147
|
+
|
148
|
+
if (pane) pane.didBecomeKeyPaneFrom(current) ;
|
149
|
+
if (current) current.didLoseKeyPaneTo(pane) ;
|
150
|
+
|
151
|
+
return this ;
|
152
|
+
},
|
153
|
+
|
154
|
+
/**
|
155
|
+
Overridden by subclasses to return the window size. The default simply
|
156
|
+
returns 640 x 480.
|
157
|
+
|
158
|
+
@returns {Size} the size of the window in pixels
|
159
|
+
*/
|
160
|
+
computeWindowSize: function() {
|
161
|
+
return { width: 640, height: 480 } ;
|
162
|
+
},
|
163
|
+
|
164
|
+
// .......................................................
|
165
|
+
// ACTIONS
|
166
|
+
//
|
167
|
+
|
168
|
+
/** @property
|
169
|
+
Set this to a delegate object that can respond to actions as they are sent
|
170
|
+
down the responder chain.
|
171
|
+
*/
|
172
|
+
defaultResponder: null,
|
173
|
+
|
174
|
+
/**
|
175
|
+
Route an action message to the appropriate responder. This method will
|
176
|
+
walk the responder chain, attempting to find a responder that implements
|
177
|
+
the action name you pass to this method. Set 'tagret' to null to search
|
178
|
+
the responder chain.
|
179
|
+
|
180
|
+
@param {String} action The action to perform - this is a method name.
|
181
|
+
@param {SC.Responder} target object to set method to (can be null)
|
182
|
+
@param {Object} sender The sender of the action
|
183
|
+
@param {SC.Pane} pane optional pane to start search with
|
184
|
+
@returns {Boolean} YES if action was performed, NO otherwise
|
185
|
+
@test in targetForAction
|
186
|
+
*/
|
187
|
+
sendAction: function( action, target, sender, pane) {
|
188
|
+
target = this.targetForAction(action, target, sender, pane) ;
|
189
|
+
return target && target.tryToPerform(action, sender) ;
|
190
|
+
},
|
191
|
+
|
192
|
+
_responderFor: function(target, methodName) {
|
193
|
+
if (target) {
|
194
|
+
target = target.get('firstResponder') ||
|
195
|
+
target.get('defaultResponder') ||
|
196
|
+
target ;
|
197
|
+
do {
|
198
|
+
if (target.respondsTo(methodName)) return target ;
|
199
|
+
} while (target = target.get('nextResponder')) ;
|
200
|
+
}
|
201
|
+
return null ;
|
202
|
+
},
|
203
|
+
|
204
|
+
/**
|
205
|
+
Attempts to determine the initial target for a given action/target/sender
|
206
|
+
tuple. This is the method used by sendAction() to try to determine the
|
207
|
+
correct target starting point for an action before trickling up the
|
208
|
+
responder chain.
|
209
|
+
|
210
|
+
You send actions for user interface events and for menu actions.
|
211
|
+
|
212
|
+
This method returns an object if a starting target was found or null if no
|
213
|
+
object could be found that responds to the target action.
|
214
|
+
|
215
|
+
Passing an explicit target or pane constrains the target lookup to just
|
216
|
+
them; the defaultResponder and other panes are *not* searched.
|
217
|
+
|
218
|
+
@param {Object|String} target or null if no target is specified
|
219
|
+
@param {String} method name for target
|
220
|
+
@param {Object} sender optional sender
|
221
|
+
@param {SC.Pane} optional pane
|
222
|
+
@returns {Object} target object or null if none found
|
223
|
+
*/
|
224
|
+
targetForAction: function(methodName, target, sender, pane) {
|
225
|
+
|
226
|
+
// 1. no action, no target...
|
227
|
+
if (!methodName || (SC.typeOf(methodName) !== SC.T_STRING)) {
|
228
|
+
return null ;
|
229
|
+
}
|
230
|
+
|
231
|
+
// 2. an explicit target was passed...
|
232
|
+
if (target) {
|
233
|
+
if (SC.typeOf(target) === SC.T_STRING) {
|
234
|
+
target = SC.objectForPropertyPath(target) ;
|
235
|
+
}
|
236
|
+
|
237
|
+
if (target) {
|
238
|
+
if (target.respondsTo && !target.respondsTo(methodName)) {
|
239
|
+
target = null ;
|
240
|
+
} else if (SC.typeOf(target[methodName]) !== SC.T_FUNCTION) {
|
241
|
+
target = null ;
|
242
|
+
}
|
243
|
+
}
|
244
|
+
|
245
|
+
return target ;
|
246
|
+
}
|
247
|
+
|
248
|
+
// 3. an explicit pane was passed...
|
249
|
+
if (pane) {
|
250
|
+
return this._responderFor(pane, methodName) ;
|
251
|
+
}
|
252
|
+
|
253
|
+
// 4. no target or pane passed... try to find target in the active panes
|
254
|
+
// and the defaultResponder
|
255
|
+
var keyPane = this.get('keyPane'), mainPane = this.get('mainPane') ;
|
256
|
+
|
257
|
+
// ...check key and main panes first
|
258
|
+
if (keyPane && (keyPane !== pane)) {
|
259
|
+
target = this._responderFor(keyPane, methodName) ;
|
260
|
+
}
|
261
|
+
if (!target && mainPane && (mainPane !== keyPane)) {
|
262
|
+
target = this._responderFor(mainPane, methodName) ;
|
263
|
+
}
|
264
|
+
|
265
|
+
// ...still no target? check the defaultResponder...
|
266
|
+
if (!target && (target = this.get('defaultResponder'))) {
|
267
|
+
if (SC.typeOf(target) === SC.T_STRING) {
|
268
|
+
target = SC.objectForPropertyPath(target) ;
|
269
|
+
if (target) this.set('defaultResponder', target) ; // cache if found
|
270
|
+
}
|
271
|
+
if (target) {
|
272
|
+
if (target.respondsTo && !target.respondsTo(methodName)) {
|
273
|
+
target = null ;
|
274
|
+
} else if (SC.typeOf(target[methodName]) !== SC.T_FUNCTION) {
|
275
|
+
target = null ;
|
276
|
+
}
|
277
|
+
}
|
278
|
+
}
|
279
|
+
|
280
|
+
return target ;
|
281
|
+
},
|
282
|
+
|
283
|
+
/**
|
284
|
+
Finds the view that appears to be targeted by the passed event. This only
|
285
|
+
works on events with a valid target property.
|
286
|
+
|
287
|
+
@param {SC.Event} evt
|
288
|
+
@returns {SC.View} view instance or null
|
289
|
+
*/
|
290
|
+
targetViewForEvent: function(evt) {
|
291
|
+
return evt.target ? SC.$(evt.target).view()[0] : null ;
|
292
|
+
},
|
293
|
+
|
294
|
+
/**
|
295
|
+
Attempts to send an event down the responder chain. This method will
|
296
|
+
invoke the sendEvent() method on either the keyPane or on the pane owning
|
297
|
+
the target view you pass in. It will also automatically begin and end
|
298
|
+
a new run loop.
|
299
|
+
|
300
|
+
If you want to trap additional events, you should use this method to
|
301
|
+
send the event down the responder chain.
|
302
|
+
|
303
|
+
@param {String} action
|
304
|
+
@param {SC.Event} evt
|
305
|
+
@param {Object} target
|
306
|
+
@returns {Object} object that handled the event or null if not handled
|
307
|
+
*/
|
308
|
+
sendEvent: function(action, evt, target) {
|
309
|
+
var pane, ret ;
|
310
|
+
|
311
|
+
SC.RunLoop.begin() ;
|
312
|
+
|
313
|
+
// get the target pane
|
314
|
+
if (target) pane = target.get('pane') ;
|
315
|
+
else pane = this.get('keyPane') || this.get('mainPane') ;
|
316
|
+
|
317
|
+
// if we found a valid pane, send the event to it
|
318
|
+
ret = (pane) ? pane.sendEvent(action, evt, target) : null ;
|
319
|
+
|
320
|
+
SC.RunLoop.end() ;
|
321
|
+
|
322
|
+
return ret ;
|
323
|
+
},
|
324
|
+
|
325
|
+
// .......................................................
|
326
|
+
// EVENT LISTENER SETUP
|
327
|
+
//
|
328
|
+
|
329
|
+
/**
|
330
|
+
Default method to add an event listener for the named event. If you simply
|
331
|
+
need to add listeners for a type of event, you can use this method as
|
332
|
+
shorthand. Pass an array of event types to listen for and the element to
|
333
|
+
listen in. A listener will only be added if a handler is actually installed
|
334
|
+
on the RootResponder of the same name.
|
335
|
+
|
336
|
+
@param {Array} keyNames
|
337
|
+
@param {Element} target
|
338
|
+
@returns {SC.RootResponder} receiver
|
339
|
+
*/
|
340
|
+
listenFor: function(keyNames, target) {
|
341
|
+
keyNames.forEach( function(keyName) {
|
342
|
+
var method = this[keyName] ;
|
343
|
+
if (method) SC.Event.add(target, keyName, this, method) ;
|
344
|
+
},this) ;
|
345
|
+
target = null ;
|
346
|
+
return this ;
|
347
|
+
},
|
348
|
+
|
349
|
+
/**
|
350
|
+
Called when the document is ready to begin handling events. Setup event
|
351
|
+
listeners in this method that you are interested in observing for your
|
352
|
+
particular platform. Be sure to call sc_super().
|
353
|
+
|
354
|
+
@returns {void}
|
355
|
+
*/
|
356
|
+
setup: function() {}
|
357
|
+
|
358
|
+
});
|
359
|
+
|
360
|
+
/*
|
361
|
+
Invoked when the document is ready, but before main is called. Creates
|
362
|
+
an instance and sets up event listeners as needed.
|
363
|
+
*/
|
364
|
+
SC.ready(SC.RootResponder, SC.RootResponder.ready = function() {
|
365
|
+
var r;
|
366
|
+
r = SC.RootResponder.responder = SC.RootResponder.create() ;
|
367
|
+
r.setup() ;
|
368
|
+
});
|