sproutcore 1.4.5-java → 1.5.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/.rspec +1 -0
- data/CHANGELOG +126 -0
- data/README.txt +25 -0
- data/VERSION.yml +2 -2
- data/bin/sc-build +1 -1
- data/bin/sc-build-number +1 -1
- data/bin/sc-docs +1 -1
- data/bin/sc-gen +1 -1
- data/bin/sc-init +1 -1
- data/bin/sc-manifest +1 -1
- data/bin/sc-server +1 -1
- data/bin/sproutcore +1 -1
- data/lib/Buildfile +14 -5
- data/lib/buildtasks/build.rake +33 -17
- data/lib/buildtasks/manifest.rake +381 -103
- data/lib/buildtasks/target.rake +1 -0
- data/lib/doc_templates/sproutcore/index.tmpl +18 -4
- data/lib/doc_templates/sproutcore/publish.js +1 -1
- data/lib/frameworks/sproutcore/Buildfile +36 -33
- data/lib/frameworks/sproutcore/CHANGELOG.md +414 -0
- data/lib/frameworks/sproutcore/README.md +1 -0
- data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/alert.js +39 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +21 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +125 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +36 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/split.js +74 -0
- data/lib/frameworks/sproutcore/apps/test_controls/core.js +29 -0
- data/lib/frameworks/sproutcore/apps/test_controls/main.js +14 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +158 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +53 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +85 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +40 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/loading.rhtml +9 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +60 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +151 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/panels_page.js +62 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +33 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +55 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +77 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +99 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +61 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +54 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/split_page.js +141 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +50 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +53 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +65 -0
- data/lib/frameworks/sproutcore/apps/test_controls/theme.js +34 -0
- data/lib/frameworks/sproutcore/apps/tests/controllers/detail.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/controllers/source.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/controllers/target.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/controllers/tests.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/core.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +6 -6
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/main.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_loading.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/start.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/detail.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/source.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/target.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/tests/models/target.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/tests/models/test.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/tests/views/offset_checkbox.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +10 -4
- data/lib/frameworks/sproutcore/apps/welcome/core.js +1 -1
- data/lib/frameworks/sproutcore/apps/{greenhouse → welcome}/english.lproj/images/main-bg.png +0 -0
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +24 -6
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +37 -47
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/strings.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/main.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/tests/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/design/{SproutCore Datastore Design.graffle → Sproutcore_DatastoreDesign.graffle}/QuickLook/Preview.pdf +0 -0
- data/lib/frameworks/sproutcore/design/{SproutCore Datastore Design.graffle → Sproutcore_DatastoreDesign.graffle}/QuickLook/Thumbnail.tiff +0 -0
- data/lib/frameworks/sproutcore/design/{SproutCore Datastore Design.graffle → Sproutcore_DatastoreDesign.graffle}/data.plist +0 -0
- data/lib/frameworks/sproutcore/{apps/docs/design/Doc Viewer.graffle → design/Sproutcore_DatastoreDesign.graffle}/image8.png +0 -0
- data/lib/frameworks/sproutcore/design/{SproutCore Design Template.graffle → Sproutcore_Design_Template.graffle}/QuickLook/Preview.pdf +0 -0
- data/lib/frameworks/sproutcore/design/{SproutCore Design Template.graffle → Sproutcore_Design_Template.graffle}/QuickLook/Thumbnail.tiff +0 -0
- data/lib/frameworks/sproutcore/design/{SproutCore Design Template.graffle → Sproutcore_Design_Template.graffle}/data.plist +0 -0
- data/lib/frameworks/sproutcore/design/{SproutCore Datastore Design.graffle → Sproutcore_Design_Template.graffle}/image8.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/QuickLook/Preview.pdf +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/QuickLook/Thumbnail.tiff +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/data.plist +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image10.png +0 -0
- data/lib/frameworks/sproutcore/{apps/docs/design/Doc Viewer.graffle → design/TestRunner_Design.graffle}/image11.png +0 -0
- data/lib/frameworks/sproutcore/{apps/docs/design/Doc Viewer.graffle → design/TestRunner_Design.graffle}/image13.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image15.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image16.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image17.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image18.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image19.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image22.tiff +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image23.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image24.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image25.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image30.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image31.png +0 -0
- data/lib/frameworks/sproutcore/design/{SproutCore Design Template.graffle → TestRunner_Design.graffle}/image8.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.graffle}/image9.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/fixtures/file_exists.json +1 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/fixtures/malformed.json +11 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +611 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +550 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +276 -0
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +57 -45
- data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +10 -5
- data/lib/frameworks/sproutcore/frameworks/bootstrap/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/setup_body_class_names.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/bench.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +219 -23
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +16 -15
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +187 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +540 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +342 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +189 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/function.js +39 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars.js +73 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +293 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +55 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/localization.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/view.js +96 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +81 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +163 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +60 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +110 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +268 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +249 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +55 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +95 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +33 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +670 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/observable_protocol.js +40 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +131 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/core.css +378 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/view.css +57 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +33 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/bindable_span.js +164 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +36 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +131 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +210 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +991 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +289 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/page.js +106 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +419 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +103 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +1063 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +124 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +2174 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +693 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +397 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +165 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +316 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +548 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +155 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +104 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +301 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/enum_case.js +206 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/null_case.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +344 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/single_case.js +136 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/empty_case.js +82 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/multiple_case.js +111 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_case.js +193 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_enumerable_case.js +265 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/responder_context.js +76 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/checkbox_support.js +38 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +79 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/builder.js +49 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/core_query/within.js +71 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +140 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/ready/done.js +40 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/begin.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/element.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +124 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/get.js +51 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_attr.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_basic.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +177 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +109 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/init.js +55 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/join.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/push_text.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/tag.js +46 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +219 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeKeyPane.js +124 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMainPane.js +68 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMenuPane.js +48 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/root_responder.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/targetForAction.js +288 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/add.js +92 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/copy.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/indexSetForSource.js +98 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/isEqual.js +60 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +111 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +201 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/theme.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invalidate.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invokeLater.js +209 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/isPaused.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/performAction.js +75 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/schedule.js +176 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/normalizeURL.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +284 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/rect.js +105 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +49 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +224 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/firstResponder.js +148 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/keyPane.js +133 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +206 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +201 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/core.js +160 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +919 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +382 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build.js +85 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +89 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +117 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +248 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertLayouts.js +153 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +132 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createLayer.js +97 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroyLayer.js +83 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +83 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/findLayerInParentLayer.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/init.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +217 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisible.js +85 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisibleInWindow.js +122 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +146 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +162 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +180 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +745 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/parentViewDidChange.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +203 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/removeChild.js +189 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +203 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render_delegate_support.js +163 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/replaceChild.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/theme.js +45 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayer.js +148 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +213 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +131 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +242 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +1524 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +181 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/base.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +48 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +57 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +223 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +1115 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +624 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +401 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +400 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/touch.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +118 -0
- data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_tools/english.lproj/strings.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_tools/fixtures/target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_tools/fixtures/test.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_tools/models/test.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +17 -21
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +322 -132
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/datastore/debug/json.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/debug/standard_setup.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +44 -61
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +16 -100
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +17 -24
- data/lib/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +20 -21
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +457 -216
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +204 -94
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +17 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +150 -115
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +148 -110
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +51 -26
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +160 -158
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +298 -204
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +419 -233
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/cascade.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +7 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/cyclical_relationship.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/mail_model.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/test_runner_model.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/datetime_recordattribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +180 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +56 -18
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +36 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/error_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +26 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +5 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +22 -22
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/contains.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/containsRecordTypes.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/copy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation_of_records.js +39 -14
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/expandedRecordTypes.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/queryWithScope.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/record_type_is.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_comparisons.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_query_extensions.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/error_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +89 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +11 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/error_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/init.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecord.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecords.js +100 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readEditableDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +39 -36
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +17 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/unloadRecord.js +55 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/unloadRecords.js +85 -32
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +1103 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +390 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +91 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +10 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/core.js +19 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/debug/drag.js +8 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +0 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +0 -27
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +27 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +1 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +72 -74
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +49 -27
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +63 -46
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +53 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +84 -79
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +138 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +38 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +396 -218
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +92 -123
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +23 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +39 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +66 -53
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +364 -121
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +209 -108
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +40 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +16 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +25 -27
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +36 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +112 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +98 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +59 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/helpers/slicing.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +51 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +60 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +100 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +84 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +116 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +58 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +80 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +81 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/source_list.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +197 -103
- data/lib/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +74 -37
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +26 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +16 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +190 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +69 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/pane_page.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +30 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +91 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/ui.js +11 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +189 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/displayProperties.js +89 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/keyEquivalents.js +57 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +46 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +91 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +16 -32
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +29 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/deleteSelection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/deselect.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/displayProperties.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/layerIdFor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/length.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +27 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/nowShowing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/select.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectNextItem.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +16 -10
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +40 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +52 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/render.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowOffsetForContentIndex.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +129 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +174 -43
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +93 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +14 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +29 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +26 -83
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +292 -61
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +11 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +32 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +78 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +11 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +11 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +16 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/static_content.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +33 -29
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/method.js +33 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/well/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +550 -231
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +63 -55
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +286 -187
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +77 -53
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +39 -31
- data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +148 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +43 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +82 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +58 -36
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +668 -509
- data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +313 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +93 -54
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +152 -38
- data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation.js +261 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation_bar.js +191 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +35 -30
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +131 -122
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +208 -208
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +24 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +332 -135
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +184 -73
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +193 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +829 -426
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +377 -143
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +96 -37
- data/lib/frameworks/sproutcore/frameworks/desktop/views/separator.js +26 -10
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +52 -39
- data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list.js +19 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +15 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +387 -271
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +10 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +15 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +18 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +114 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/thumb.js +14 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +103 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +36 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +27 -31
- data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +285 -0
- data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +6 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/README.md +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/README +18 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/TODO +56 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/beautify.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/design.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/file.js +35 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/files.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/layout.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +194 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/page.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/property.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/property_editor.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/target.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/targets.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/controllers/view_configs.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/core.js +65 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/core_file.js +124 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/data_source.js +250 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/app_page.js +399 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/app-selector.css +107 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/button.css +314 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/dock.css +90 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/general.css +51 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/main-page.css +93 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/menu.css +49 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/modal.css +41 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/css/picker.css +195 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/search.css +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/css/text-field.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/dialogs.js +303 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.eot +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.otf +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500.woff +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.eot +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.otf +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/fonts/museosans_500_italic.woff +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/app-selector/choose-app.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/app-selector/list-item-sel.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/regular-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/regular-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/capsule/sel-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/regular-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/dark/sel-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/active-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/disabled-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/regular-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-active-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-disabled-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/shared/sel-m.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/regular-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/regular-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/buttons/square/sel-r.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/actions-active.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/actions.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/inspector-active.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/inspector.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/library-active.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/library.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/projects-active.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/projects.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/run-active.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/run.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/save-active.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/icons/save.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/greenhouse-l.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/greenhouse-s.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/logos/sproutcore.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/apps/greenhouse}/english.lproj/images/main-bg.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom-left.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom-right.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/bottom.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/close-active.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/close.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/left.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-bottom.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-left.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-right.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/pointer-top.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/right.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/search-active.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/search.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top-left.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top-right.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/picker/top.png +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/images/toolbar-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/inspectors.js +365 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/loading.rhtml +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/english.lproj/main_page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/english.lproj/strings.js +93 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/fixtures/file.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/main.js +28 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/mixins/drop_down.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/models/design.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/models/dir.js +93 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/models/file.js +51 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/target.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/models/view_config.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/resources/test_page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/inspector.js +152 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/library.js +142 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/main.js +283 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/modals.js +299 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +235 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/design.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/designs.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/file.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/controllers/files.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/models/file.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/tests/models/view_config.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/tests/views/list_item.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/tests/views/plist_item.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/theme.js +25 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/anchor.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/application_list_item.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/event_blocker.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/label_designer.js +0 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/list_item.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +178 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/simple_button.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/tear_off_picker.js +56 -0
- data/lib/frameworks/sproutcore/{apps → frameworks/experimental/apps}/greenhouse/views/web.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/coders/design.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/coders/object.js +349 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/controllers.js +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/design.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/designs.js +139 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +172 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_files.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/core.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_rule.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +201 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/button.js +23 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/label.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +298 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/tab.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/text_field.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +1269 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/css/designer.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/english.lproj/design_page.js +55 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/high_light.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/controller.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-divider.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-sel-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/dock-item-sel-divider.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/english.lproj/images/main-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/page.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/pane.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/images/view.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/english.lproj/selection_handles.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/binding.js +39 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/object.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/page.js +60 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/view.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/button.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +227 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/tests/coders/page.js +54 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/tests/designers/view_designer.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +144 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +219 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/high_light.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{designer → experimental/frameworks/designer}/views/page_item_view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/selection_handles.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/README.md +11 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +215 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +46 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +112 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/many.js +79 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +76 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/single.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +229 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +236 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/render_delegates/split_divider.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +100 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/dividers.js +243 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +294 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_child.js +135 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +160 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +929 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split_divider.js +40 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/default_styles.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/strings.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/forms/mixins/edit_mode.js +48 -0
- data/lib/frameworks/sproutcore/frameworks/forms/mixins/emptiness.js +94 -0
- data/lib/frameworks/sproutcore/frameworks/forms/render_delegates/form.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/forms/render_delegates/form_row.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_checkbox_field.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_field.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_label.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_radio_field.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_row.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_text_field.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +286 -0
- data/lib/frameworks/sproutcore/frameworks/forms/views/form_row.js +187 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +52 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +15 -142
- data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +29 -21
- data/lib/frameworks/sproutcore/frameworks/foundation/delegates/inline_text_field.js +90 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/benchmark.css +146 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +4 -16
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/checkbox_view.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/radio_view.css +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +4 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/ext/string.js +89 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/pinch.js +119 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/swipe.js +234 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/tap.js +157 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/license.js +24 -26
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +355 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +4 -350
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +10 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +8 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +227 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +105 -200
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +16 -15
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +745 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +214 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +254 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +188 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +195 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +194 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +20 -21
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/tree_item_content.js +57 -53
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +18 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +214 -203
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +110 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/container.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +99 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +119 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +386 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +404 -191
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +65 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/cookie.js +176 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/core_query.js +20 -2006
- data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/system/gesture.js +363 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/image_queue.js +433 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/math.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +591 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/routes.js +123 -24
- data/lib/frameworks/sproutcore/frameworks/foundation/system/string.js +422 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +19 -16
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +91 -96
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +87 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +157 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/range.js +71 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +254 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/tasks/task.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/outline_case.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/delegates/inline_text_field/inline_text_field.js +150 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/integration/creating_views.js +9 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_display.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +168 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +194 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +150 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +151 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +114 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +151 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +152 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/api.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +13 -22
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +8 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/validatable/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/flat_case.js +59 -59
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/group_case.js +114 -114
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/outline_case.js +74 -74
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/render_delegates/render_delegate.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/cookie.js +182 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +19 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/math.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +30 -20
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/string.js +34 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/task_queue.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +241 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/range.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/credit_card.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +11 -13
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/not_empty.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/number.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/password.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/validators/validator.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +10 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +76 -11
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +499 -46
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +32 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/nextValidKeyView.js +110 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +87 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +39 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/email.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +6 -10
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/positive_integer.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +16 -14
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +23 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +307 -105
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +654 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +81 -195
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +287 -116
- data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +1435 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +390 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +210 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +7179 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/tests/set_class.js +40 -0
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +10 -8
- data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +4 -6
- data/lib/frameworks/sproutcore/frameworks/media/views/media_slider.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +4 -5
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/mini/license.js +30 -28
- data/lib/frameworks/sproutcore/frameworks/qunit/README.md +24 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/package.json +21 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.css +215 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +1442 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/test/headless.html +24 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/test/index.html +18 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/test/logs.html +17 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/test/logs.js +150 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/test/same.js +1421 -0
- data/lib/frameworks/sproutcore/frameworks/qunit/test/test.js +314 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +232 -537
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +163 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/indexOf.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/insertAt.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/objectAt.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/popObject.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/pushObject.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/rangeObserver.js +74 -74
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/removeAt.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/removeObject.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/shiftObject.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/unshiftObject.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +92 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/date.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +189 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/string.js +31 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/license.js +29 -28
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +577 -317
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +16 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +25 -18
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +351 -308
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +51 -52
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1149 -1001
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +85 -45
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +61 -55
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +51 -107
- data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +195 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +361 -348
- data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +45 -40
- data/lib/frameworks/sproutcore/frameworks/runtime/system/function.js +76 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +275 -265
- data/lib/frameworks/sproutcore/frameworks/runtime/system/json.js +515 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +1337 -204
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +312 -259
- data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +89 -87
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +119 -106
- data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +107 -101
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +60 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +23 -47
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/beget.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/compare.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/console.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +59 -126
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/inspect.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +21 -19
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +71 -33
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +21 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +39 -15
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/comparable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable.js +623 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable_observers.js +81 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +286 -98
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observersForKey.js +36 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +78 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +87 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/error.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/addEach.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/clone.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/contains.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/create.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/indexAfter.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/indexBefore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/intersects.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/max.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/min.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/removeEach.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/without.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/json.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +180 -92
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/concatenated_properties.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +196 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +56 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +12 -12
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/destroy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/objectPropertyDidChange.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/rangeDidChange.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/update.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +77 -45
- data/lib/frameworks/sproutcore/frameworks/statechart/core.js +4 -10
- data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +155 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +1241 -97
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +1617 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/advanced/respond_to_event.js +401 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/advanced/without_concurrent_states.js +306 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +183 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/without_concurrent_states.js +122 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/pane.js +89 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +109 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/root_responder.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/initial_substate.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/is_current_state.js +60 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/namespacing.js +248 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/plugin/mixin.js +68 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/plugin/nesting.js +95 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/state_observes.js +235 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/core.js +94 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/with_concurrent_states.js +123 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/async/without_concurrent_states.js +191 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/initial_substate/core.js +48 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/initial_substate/without_concurrent_states.js +218 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/with_concurrent_states.js +88 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +191 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/core.js +200 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/advanced.js +239 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/basic.js +131 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/with_concurrent_states/intermediate.js +120 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/context.js +144 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +281 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/transient/without_concurrent_states.js +162 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/create/assigned_root_state.js +76 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/create/unassigned_root_state.js +162 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/destroy.js +73 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/invoke_state_method.js +241 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/owner.js +236 -0
- data/lib/frameworks/sproutcore/frameworks/table/mixins/table_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/table/system/table_column.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/table/views/table.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/table/views/table_cell.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/table/views/table_header.js +6 -4
- data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/testing/core.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/testing/extras.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/dump.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +32 -19
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +13 -3
- data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/utils.js +1 -1
- data/lib/frameworks/sproutcore/lib/index.rhtml +54 -9
- data/lib/frameworks/sproutcore/license.js +32 -30
- data/lib/frameworks/sproutcore/themes/ace/designs/dark.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/dark.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/light.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/light.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_capsule.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button_pointer.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/active_select.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/normal_select.psd +0 -0
- 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/collection/source-list/selection.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/down.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/up.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/panel.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/pointers.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_empty.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_notoolbar.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers_notoolbar.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_content.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_indeterminate_content.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_track.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_unselected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/thumb.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/thumb.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_normal.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_normal.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_normal.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_normal.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob_active.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/track.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/track.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/toolbar/toolbar.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.psd +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/body.css +13 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +33 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +102 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +78 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +39 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/button.css +41 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +93 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_capsule.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +72 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button_pointer.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.js +5 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/active_select.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/normal_select.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +21 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox.css +40 -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.css +40 -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/checkbox/ace/checkbox.css +7 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +4 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/selection.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source-list.js +3 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source_list_view.css +36 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +24 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/imagebutton/ace/imagebutton.css +11 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/loading.css +50 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/down.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +79 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/menu/up.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/pane/pane.css +3 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.css +13 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.css +41 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +32 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +111 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.js +12 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_empty.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_notoolbar.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers_notoolbar.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +28 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_content.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio.css +57 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_unselected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal.css +78 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_touch.css +91 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/thumb.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/thumb.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical.css +80 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_touch.css +92 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +91 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +91 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +95 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_normal.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +83 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/slider.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/slider.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/slider.css +27 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +8 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +31 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/tab/tab.css +3 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +8 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/well/well.css +7 -0
- data/lib/frameworks/sproutcore/themes/ace/theme.js +30 -0
- data/lib/frameworks/sproutcore/themes/empty_theme/theme.js +16 -0
- data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/strings.js +1 -1
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/Panel.drawit/Data +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/lib/frameworks/sproutcore/themes/standard_theme/Source/SproutCore Theme Buttons.psd b/data/lib/frameworks/sproutcore/themes/legacy_theme/Source/SproutCore Theme → Buttons.psd +0 -0
- data/lib/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/Data b/data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView → Pattern.drawit/Data +0 -0
- data/lib/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg b/data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView → Pattern.drawit/QuickLook/Preview.jpg +0 -0
- data/lib/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg b/data/lib/frameworks/sproutcore/themes/legacy_theme/Source/ToolbarView → Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/10.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/100.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/102.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/110.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/120.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/127.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/18.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/19.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/2.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/24.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/26.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/27.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/28.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/29.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/30.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/31.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/33.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/37.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/41.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/16/99.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/10.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/100.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/102.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/110.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/120.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/127.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/18.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/19.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/2.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/24.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/26.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/27.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/28.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/29.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/30.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/31.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/33.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/37.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/41.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/24/99.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/10.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/100.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/102.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/110.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/120.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/127.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/18.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/19.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/2.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/24.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/26.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/27.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/28.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/29.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/30.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/31.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/33.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/37.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/41.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/32/99.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/48/10.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/48/18.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/48/19.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/icons/48/2.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-x.drawit/Data +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-y.drawit/Data +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sc-theme-repeat-x-2.psd +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sc-theme-repeat-x.psd +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sc-theme-sprite.psd +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sc-theme-ysprite.psd +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/shared-icons.psd +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sproutcore-logo.psd +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/Source/sticky-note.psd +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/button.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/checkbox.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/collection.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/core.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/disclosure.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/icons/mini_222222.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/icons/mini_454545.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/icons/mini_888888.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/icons/mini_ffffff.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/panels/sprite-x.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/panels/sprite-y.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-scroller-repeat-x.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-scroller-repeat-y.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-scroller-sprite.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-theme-repeat-x.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-theme-ysprite.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/images/sc-toolbar-view.png +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/label.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/list_item.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/menu.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/menu_item_view.css +0 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/pane.css +18 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/panel.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/picker.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/progress.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/radio.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/scroller.css +0 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/segmented.css +270 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/slider.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/split_view.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/tab.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/table.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/text_field.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/toolbar.css +0 -0
- data/lib/frameworks/sproutcore/themes/{standard_theme → legacy_theme}/english.lproj/well.css +0 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +89 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/panel.js +28 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +194 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +67 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/well.js +27 -0
- data/lib/frameworks/sproutcore/themes/legacy_theme/theme.js +13 -0
- data/lib/gen/app/templates/apps/@target_name@/Buildfile +14 -0
- data/lib/gen/app/templates/apps/@target_name@/theme.js +27 -0
- data/lib/gen/html_app/Buildfile +36 -0
- data/lib/gen/html_app/README +1 -0
- data/lib/gen/html_app/USAGE +15 -0
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +14 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +4 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +1 -0
- data/lib/gen/html_project/Buildfile +45 -0
- data/lib/gen/html_project/INIT +3 -0
- data/lib/gen/html_project/README +1 -0
- data/lib/gen/html_project/USAGE +2 -0
- data/lib/gen/html_project/templates/@filename@/Buildfile +8 -0
- data/lib/gen/html_project/templates/@filename@/README +7 -0
- data/lib/gen/project/templates/@filename@/Buildfile +7 -2
- data/lib/gen/theme/templates/themes/@target_name@/Buildfile +3 -0
- data/lib/gen/theme/templates/themes/@target_name@/theme.js +23 -0
- data/lib/sproutcore.rb +11 -2
- data/lib/sproutcore/builders.rb +4 -2
- data/lib/sproutcore/builders/base.rb +10 -3
- data/lib/sproutcore/builders/chance_file.rb +78 -0
- data/lib/sproutcore/builders/combine.rb +6 -5
- data/lib/sproutcore/builders/handlebars.rb +30 -0
- data/lib/sproutcore/builders/html.rb +2 -0
- data/lib/sproutcore/builders/javascript.rb +15 -2
- data/lib/sproutcore/builders/minify.rb +14 -25
- data/lib/sproutcore/builders/module.rb +74 -0
- data/lib/sproutcore/builders/string_wrapper.rb +41 -0
- data/lib/sproutcore/buildfile.rb +17 -17
- data/lib/sproutcore/buildfile/task.rb +4 -12
- data/lib/sproutcore/buildfile/task_manager.rb +13 -4
- data/lib/sproutcore/helpers.rb +1 -1
- data/lib/sproutcore/helpers/entry_sorter.rb +5 -9
- data/lib/sproutcore/helpers/minifier.rb +110 -0
- data/lib/sproutcore/helpers/static_helper.rb +105 -39
- data/lib/sproutcore/models/generator.rb +16 -0
- data/lib/sproutcore/models/manifest.rb +3 -3
- data/lib/sproutcore/models/manifest_entry.rb +10 -3
- data/lib/sproutcore/models/target.rb +146 -34
- data/lib/sproutcore/rack/dev.rb +3 -3
- data/lib/sproutcore/rack/proxy.rb +1 -1
- data/lib/sproutcore/tools.rb +53 -5
- data/lib/sproutcore/tools/build.rb +10 -16
- data/lib/sproutcore/tools/docs.rb +1 -1
- data/lib/sproutcore/tools/gen.rb +1 -1
- data/lib/sproutcore/tools/init.rb +26 -10
- data/lib/sproutcore/tools/server.rb +9 -1
- data/lib/sproutcore/version.rb +1 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_2x_spec.rb +100 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_spec.rb +104 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +86 -9
- data/spec/buildtasks/manifest/prepare_build_tasks/css_spec.rb +1 -1
- data/spec/buildtasks/manifest/prepare_build_tasks/handlebars_spec.rb +39 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/minify_spec.rb +1 -1
- data/spec/buildtasks/manifest/prepare_build_tasks/module_info_spec.rb +96 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/module_spec.rb +83 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_2x_indirect_spec.rb +191 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_2x_spec.rb +185 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +46 -11
- data/spec/buildtasks/manifest/spec_helper.rb +4 -0
- data/spec/fixtures/builder_tests/Buildfile +11 -9
- data/spec/fixtures/builder_tests/apps/chance_test/Buildfile +14 -0
- data/spec/fixtures/builder_tests/apps/chance_test/core.js +27 -0
- data/spec/fixtures/builder_tests/apps/chance_test/main.js +30 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/demo.css +6 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/force@2x.png +0 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/last_file.css +7 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/loading.rhtml +9 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/main_page.js +24 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/z_first_file.css +6 -0
- data/spec/fixtures/builder_tests/apps/chance_test/theme.js +27 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/template.handlebars +5 -0
- data/spec/fixtures/builder_tests/apps/module_test/module.js +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/req_style_2.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/test.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/javascript.js +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/lib/alt_layout.rhtml +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/req_js_2.js +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/dynamic_req_js_1.js +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/english.lproj/dynamic_req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/inlined_module/README +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/strings.js +4 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/test.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/req_js_1.js +0 -0
- data/spec/fixtures/helper_tests/apps/minifier_test/core.js +8 -0
- data/spec/fixtures/real_world/Buildfile +11 -1
- data/spec/fixtures/real_world/apps/account/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/calendar/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/contacts/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/contacts/modules/printing/README +0 -0
- data/spec/fixtures/real_world/apps/mail/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/mail/modules/printing/README +0 -0
- data/spec/fixtures/real_world/apps/photos/modules/email/README +0 -0
- data/spec/fixtures/real_world/apps/photos/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/frameworks/no_2x/resources/test.css +1 -0
- data/spec/fixtures/real_world/frameworks/no_2x/resources/test.png +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/templates/demo.handlebars +4 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/resources/force@2x.png +0 -0
- data/spec/lib/builders/chance_file_spec.rb +44 -0
- data/spec/lib/builders/handlebars_spec.rb +29 -0
- data/spec/lib/builders/module_spec.rb +133 -0
- data/spec/lib/builders/strings_spec.rb +1 -0
- data/spec/lib/helpers/minifier.rb +31 -0
- data/spec/lib/models/project/find_targets_for_spec.rb +1 -1
- data/sproutcore.gemspec +11 -4
- data/vendor/chance/.gitignore +5 -0
- data/vendor/chance/Gemfile +4 -0
- data/vendor/chance/Rakefile +2 -0
- data/vendor/chance/bin/chance +46 -0
- data/vendor/chance/chance.gemspec +28 -0
- data/vendor/chance/lib/chance.rb +156 -0
- data/vendor/chance/lib/chance/instance.rb +330 -0
- data/vendor/chance/lib/chance/instance/data_url.rb +85 -0
- data/vendor/chance/lib/chance/instance/javascript.rb +19 -0
- data/vendor/chance/lib/chance/instance/slicing.rb +181 -0
- data/vendor/chance/lib/chance/instance/spriting.rb +311 -0
- data/vendor/chance/lib/chance/parser.rb +835 -0
- data/vendor/chance/lib/chance/perf.rb +17 -0
- data/vendor/chance/lib/chance/version.rb +3 -0
- data/vendor/chance/lib/tester/test.rb +108 -0
- data/vendor/chance/lib/tester/test_runner.rb +27 -0
- data/vendor/chance/test/case/abc.png +0 -0
- data/vendor/chance/test/case/more/abc.png +0 -0
- data/vendor/chance/test/case/more/another.css +4 -0
- data/vendor/chance/test/case/test1.css +22 -0
- data/vendor/chance/test/case/test2.css +6 -0
- data/vendor/chance/tests/parser/basic/input/test.css +4 -0
- data/vendor/chance/tests/parser/basic/output/test.parsed.css +5 -0
- data/vendor/sproutcore/SCCompiler.jar +0 -0
- data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
- data/vendor/sproutcore/lib/htmlcompressor-0.9.3.jar +0 -0
- data/{lib/sproutcore/vendor/yui-compressor → vendor/sproutcore/lib}/yuicompressor-2.4.2.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/build.xml +74 -0
- data/vendor/sproutcore/src/SCCompiler/lib/args4j-2.0.12.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/lib/htmlcompressor-0.9.3.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.2.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.4.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/manifest.mf +3 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/build-impl.xml +894 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/genfiles.properties +8 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/config.properties +0 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.properties +10 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.xml +4 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/project.properties +90 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/project.xml +15 -0
- data/vendor/sproutcore/src/SCCompiler/src/com/sproutcore/Main.java +348 -0
- metadata +1236 -560
- data/lib/frameworks/sproutcore/CHANGELOG +0 -93
- data/lib/frameworks/sproutcore/CHANGELOG-1.4.md +0 -170
- data/lib/frameworks/sproutcore/apps/docs/core.js +0 -27
- data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Preview.pdf +0 -0
- data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/data.plist +0 -14378
- data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image10.png +0 -0
- data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image14.png +0 -0
- data/lib/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image9.tiff +0 -0
- data/lib/frameworks/sproutcore/apps/docs/english.lproj/loading.rhtml +0 -9
- data/lib/frameworks/sproutcore/apps/docs/english.lproj/main_page.js +0 -22
- data/lib/frameworks/sproutcore/apps/docs/english.lproj/strings.js +0 -15
- data/lib/frameworks/sproutcore/apps/docs/main.js +0 -30
- data/lib/frameworks/sproutcore/apps/greenhouse/README +0 -25
- data/lib/frameworks/sproutcore/apps/greenhouse/TODO +0 -72
- data/lib/frameworks/sproutcore/apps/greenhouse/controllers/file.js +0 -75
- data/lib/frameworks/sproutcore/apps/greenhouse/controllers/library.js +0 -201
- data/lib/frameworks/sproutcore/apps/greenhouse/core.js +0 -67
- data/lib/frameworks/sproutcore/apps/greenhouse/core_file.js +0 -124
- data/lib/frameworks/sproutcore/apps/greenhouse/data_source.js +0 -250
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/app_page.js +0 -377
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/app-selector.css +0 -111
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/button.css +0 -310
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/dock.css +0 -85
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/general.css +0 -52
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/main-page.css +0 -120
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/menu.css +0 -52
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/modal.css +0 -40
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/picker.css +0 -188
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/tabbed.css +0 -68
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/dialogs.js +0 -302
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/inspectors.js +0 -365
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/strings.js +0 -87
- data/lib/frameworks/sproutcore/apps/greenhouse/main.js +0 -28
- data/lib/frameworks/sproutcore/apps/greenhouse/models/design.js +0 -22
- data/lib/frameworks/sproutcore/apps/greenhouse/models/dir.js +0 -92
- data/lib/frameworks/sproutcore/apps/greenhouse/models/file.js +0 -51
- data/lib/frameworks/sproutcore/apps/greenhouse/states/inspector.js +0 -144
- data/lib/frameworks/sproutcore/apps/greenhouse/states/library.js +0 -133
- data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +0 -224
- data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +0 -291
- data/lib/frameworks/sproutcore/apps/greenhouse/states/ready.js +0 -197
- data/lib/frameworks/sproutcore/apps/greenhouse/tests/views/list_item.js +0 -15
- data/lib/frameworks/sproutcore/apps/greenhouse/views/plist_item.js +0 -39
- data/lib/frameworks/sproutcore/apps/greenhouse/views/tear_off_picker.js +0 -56
- data/lib/frameworks/sproutcore/design/TestRunner Design.graffle/image11.png +0 -0
- data/lib/frameworks/sproutcore/design/TestRunner Design.graffle/image13.png +0 -0
- data/lib/frameworks/sproutcore/design/TestRunner Design.graffle/image8.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/parentless.js +0 -134
- data/lib/frameworks/sproutcore/frameworks/datejs/core.js +0 -865
- data/lib/frameworks/sproutcore/frameworks/datejs/english.lproj/en-US.js +0 -186
- data/lib/frameworks/sproutcore/frameworks/datejs/extras.js +0 -332
- data/lib/frameworks/sproutcore/frameworks/datejs/license.js +0 -25
- data/lib/frameworks/sproutcore/frameworks/datejs/parser.js +0 -1116
- data/lib/frameworks/sproutcore/frameworks/datejs/spanish.lproj/es-CO.js +0 -186
- data/lib/frameworks/sproutcore/frameworks/datejs/sugarpak.js +0 -475
- data/lib/frameworks/sproutcore/frameworks/datejs/time.js +0 -269
- data/lib/frameworks/sproutcore/frameworks/datejs/validators/datejs.js +0 -34
- data/lib/frameworks/sproutcore/frameworks/designer/coders/design.js +0 -20
- data/lib/frameworks/sproutcore/frameworks/designer/coders/localization.js +0 -19
- data/lib/frameworks/sproutcore/frameworks/designer/coders/object.js +0 -347
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/controllers.js +0 -16
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/design.js +0 -37
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/designs.js +0 -134
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +0 -170
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/page_files.js +0 -22
- data/lib/frameworks/sproutcore/frameworks/designer/core.js +0 -26
- data/lib/frameworks/sproutcore/frameworks/designer/css/css_rule.js +0 -22
- data/lib/frameworks/sproutcore/frameworks/designer/css/css_style.js +0 -29
- data/lib/frameworks/sproutcore/frameworks/designer/css/css_style_sheet.js +0 -201
- data/lib/frameworks/sproutcore/frameworks/designer/designers/button.js +0 -21
- data/lib/frameworks/sproutcore/frameworks/designer/designers/label.js +0 -16
- data/lib/frameworks/sproutcore/frameworks/designer/designers/object_designer.js +0 -296
- data/lib/frameworks/sproutcore/frameworks/designer/designers/tab.js +0 -18
- data/lib/frameworks/sproutcore/frameworks/designer/designers/text_field.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/designer/designers/view_designer.js +0 -1259
- data/lib/frameworks/sproutcore/frameworks/designer/english.lproj/design_page.js +0 -55
- data/lib/frameworks/sproutcore/frameworks/designer/ext/object.js +0 -26
- data/lib/frameworks/sproutcore/frameworks/designer/ext/page.js +0 -86
- data/lib/frameworks/sproutcore/frameworks/designer/ext/view.js +0 -54
- data/lib/frameworks/sproutcore/frameworks/designer/mixins/button.js +0 -11
- data/lib/frameworks/sproutcore/frameworks/designer/mixins/snap_lines.js +0 -221
- data/lib/frameworks/sproutcore/frameworks/designer/views/designer_drop_target.js +0 -138
- data/lib/frameworks/sproutcore/frameworks/designer/views/drawing.js +0 -219
- data/lib/frameworks/sproutcore/frameworks/designer/views/selection_handles.js +0 -78
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/array.js +0 -518
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +0 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/object.js +0 -342
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +0 -474
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/strings.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +0 -57
- data/lib/frameworks/sproutcore/frameworks/foundation/ext/object.js +0 -83
- data/lib/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +0 -162
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +0 -585
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/responder_context.js +0 -269
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +0 -250
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/string.js +0 -543
- data/lib/frameworks/sproutcore/frameworks/foundation/panes/main.js +0 -51
- data/lib/frameworks/sproutcore/frameworks/foundation/panes/pane.js +0 -848
- data/lib/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +0 -84
- data/lib/frameworks/sproutcore/frameworks/foundation/system/application.js +0 -37
- data/lib/frameworks/sproutcore/frameworks/foundation/system/browser.js +0 -59
- data/lib/frameworks/sproutcore/frameworks/foundation/system/builder.js +0 -210
- data/lib/frameworks/sproutcore/frameworks/foundation/system/bundle.js +0 -337
- data/lib/frameworks/sproutcore/frameworks/foundation/system/cursor.js +0 -131
- data/lib/frameworks/sproutcore/frameworks/foundation/system/datetime.js +0 -1140
- data/lib/frameworks/sproutcore/frameworks/foundation/system/device.js +0 -143
- data/lib/frameworks/sproutcore/frameworks/foundation/system/event.js +0 -894
- data/lib/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +0 -433
- data/lib/frameworks/sproutcore/frameworks/foundation/system/json.js +0 -515
- data/lib/frameworks/sproutcore/frameworks/foundation/system/locale.js +0 -293
- data/lib/frameworks/sproutcore/frameworks/foundation/system/page.js +0 -108
- data/lib/frameworks/sproutcore/frameworks/foundation/system/platform.js +0 -298
- data/lib/frameworks/sproutcore/frameworks/foundation/system/ready.js +0 -197
- data/lib/frameworks/sproutcore/frameworks/foundation/system/render_context.js +0 -988
- data/lib/frameworks/sproutcore/frameworks/foundation/system/request.js +0 -599
- data/lib/frameworks/sproutcore/frameworks/foundation/system/responder.js +0 -124
- data/lib/frameworks/sproutcore/frameworks/foundation/system/response.js +0 -538
- data/lib/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +0 -2068
- data/lib/frameworks/sproutcore/frameworks/foundation/system/time.js +0 -473
- data/lib/frameworks/sproutcore/frameworks/foundation/system/timer.js +0 -551
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils.js +0 -710
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/array_case.js +0 -218
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/enum_case.js +0 -206
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/null_case.js +0 -64
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/selection_support.js +0 -318
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/single_case.js +0 -136
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/empty_case.js +0 -82
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/multiple_case.js +0 -111
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/single_case.js +0 -193
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/single_enumerable_case.js +0 -265
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/content.js +0 -195
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/displayProperties.js +0 -89
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/keyEquivalents.js +0 -57
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/ui.js +0 -68
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/content.js +0 -168
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/responder_context.js +0 -75
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/string.js +0 -83
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/builder.js +0 -42
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +0 -1334
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +0 -387
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +0 -405
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/within.js +0 -66
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/datetime.js +0 -382
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/json.js +0 -14
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/locale.js +0 -134
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/begin.js +0 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/element.js +0 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/end.js +0 -124
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +0 -51
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +0 -50
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +0 -28
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +0 -179
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +0 -101
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/init.js +0 -55
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/join.js +0 -28
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/push_text.js +0 -74
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/tag.js +0 -46
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +0 -218
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +0 -223
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeKeyPane.js +0 -124
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMainPane.js +0 -68
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMenuPane.js +0 -48
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +0 -101
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/targetForAction.js +0 -251
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invalidate.js +0 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invokeLater.js +0 -201
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/isPaused.js +0 -71
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/performAction.js +0 -69
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +0 -170
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/normalizeURL.js +0 -18
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/rect.js +0 -99
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/main_pane.js +0 -31
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +0 -124
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/firstResponder.js +0 -148
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/keyPane.js +0 -133
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/layout.js +0 -31
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendEvent.js +0 -206
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +0 -133
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +0 -246
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertLayouts.js +0 -145
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +0 -122
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/createLayer.js +0 -97
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/destroyLayer.js +0 -83
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/didAppendToDocument.js +0 -48
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +0 -50
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/init.js +0 -50
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/insertBefore.js +0 -200
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisible.js +0 -51
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +0 -116
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layer.js +0 -150
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutChildViews.js +0 -162
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutDidChange.js +0 -127
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +0 -531
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/nextValidKeyView.js +0 -110
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/parentViewDidChange.js +0 -67
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +0 -180
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/removeChild.js +0 -189
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/render.js +0 -83
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/replaceChild.js +0 -29
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +0 -146
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +0 -194
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +0 -202
- data/lib/frameworks/sproutcore/frameworks/foundation/views/view.js +0 -3313
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +0 -110
- data/lib/frameworks/sproutcore/frameworks/runtime/protocols/observable_protocol.js +0 -40
- data/lib/frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js +0 -131
- data/lib/frameworks/sproutcore/frameworks/runtime/system/cookie.js +0 -160
- data/lib/frameworks/sproutcore/frameworks/runtime/system/selection_set.js +0 -697
- data/lib/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +0 -379
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +0 -622
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/cookie.js +0 -163
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/add.js +0 -92
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/copy.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/indexSetForSource.js +0 -98
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/isEqual.js +0 -60
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/remove.js +0 -111
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +0 -194
- data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart.js +0 -336
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/basic.js +0 -90
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/history.js +0 -71
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/nested.js +0 -59
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/transient.js +0 -148
- data/lib/frameworks/sproutcore/frameworks/testing/jquery.js +0 -3559
- data/lib/frameworks/sproutcore/frameworks/testing/qunit.js +0 -827
- data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +0 -18
- data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +0 -275
- data/lib/sproutcore/builders/bundle.rb +0 -63
- data/lib/sproutcore/buildfile/cloneable.rb +0 -34
- data/lib/sproutcore/vendor/yui-compressor/SCyuicompressor-2.4.2.jar +0 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +0 -254
- data/spec/fixtures/builder_tests/apps/bundle_test/bundle.js +0 -1
- data/spec/lib/builders/bundle_spec.rb +0 -295
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
sc_require("ext/handlebars");
|
|
2
|
+
sc_require("ext/handlebars/bind");
|
|
3
|
+
sc_require("ext/handlebars/collection");
|
|
4
|
+
sc_require("ext/handlebars/localization");
|
|
5
|
+
sc_require("ext/handlebars/view");
|
|
6
|
+
|
|
7
|
+
// Global hash of shared templates. This will automatically be populated
|
|
8
|
+
// by the build tools so that you can store your Handlebars templates in
|
|
9
|
+
// separate files that get loaded into JavaScript at buildtime.
|
|
10
|
+
SC.TEMPLATES = SC.Object.create();
|
|
11
|
+
|
|
12
|
+
/** @class
|
|
13
|
+
|
|
14
|
+
SC.TemplateView allows you to create a view that uses the Handlebars templating
|
|
15
|
+
engine to generate its HTML representation.
|
|
16
|
+
|
|
17
|
+
To use it, create a file in your project called +mytemplate.handlebars+. Then,
|
|
18
|
+
set the +templateName+ property of your SC.TemplateView to +mytemplate+.
|
|
19
|
+
|
|
20
|
+
Alternatively, you can set the +template+ property to any function that
|
|
21
|
+
returns a string. It is recommended that you use +SC.Handlebars.compile()+ to
|
|
22
|
+
generate a function from a string containing Handlebars markup.
|
|
23
|
+
|
|
24
|
+
@extends SC.CoreView
|
|
25
|
+
@since SproutCore 1.5
|
|
26
|
+
*/
|
|
27
|
+
SC.TemplateView = SC.CoreView.extend(
|
|
28
|
+
/** @scope SC.TemplateView.prototype */ {
|
|
29
|
+
|
|
30
|
+
// This makes it easier to build custom views on top of TemplateView without
|
|
31
|
+
// gotchas, but may have tab navigation repercussions. The tab navigation
|
|
32
|
+
// system should be revisited.
|
|
33
|
+
acceptsFirstResponder: YES,
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
The name of the template to lookup if no template is provided.
|
|
37
|
+
|
|
38
|
+
SC.TemplateView will look for a template with this name in the global
|
|
39
|
+
+SC.TEMPLATES+ hash. Usually this hash will be populated for you
|
|
40
|
+
automatically when you include +.handlebars+ files in your project.
|
|
41
|
+
|
|
42
|
+
@property {String}
|
|
43
|
+
*/
|
|
44
|
+
templateName: null,
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
The hash in which to look for +templateName+. Defaults to SC.TEMPLATES.
|
|
48
|
+
|
|
49
|
+
@property {Object}
|
|
50
|
+
*/
|
|
51
|
+
templates: SC.TEMPLATES,
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
The template used to render the view. This should be a function that
|
|
55
|
+
accepts an optional context parameter and returns a string of HTML that
|
|
56
|
+
will be inserted into the DOM relative to its parent view.
|
|
57
|
+
|
|
58
|
+
In general, you should set the +templateName+ property instead of setting
|
|
59
|
+
the template yourself.
|
|
60
|
+
|
|
61
|
+
@property {Function}
|
|
62
|
+
*/
|
|
63
|
+
template: function(key, value) {
|
|
64
|
+
if (value !== undefined) {
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
var templateName = this.get('templateName'),
|
|
69
|
+
template = this.get('templates').get(templateName);
|
|
70
|
+
|
|
71
|
+
if (!template) {
|
|
72
|
+
//@if(debug)
|
|
73
|
+
if (templateName) {
|
|
74
|
+
SC.Logger.warn('%@ - Unable to find template "%@".'.fmt(this, templateName));
|
|
75
|
+
}
|
|
76
|
+
//@endif
|
|
77
|
+
|
|
78
|
+
return function() { return ''; };
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return template;
|
|
82
|
+
}.property('templateName').cacheable(),
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
The object from which templates should access properties.
|
|
86
|
+
|
|
87
|
+
This object will be passed to the template function each time the render
|
|
88
|
+
method is called, but it is up to the individual function to decide what
|
|
89
|
+
to do with it.
|
|
90
|
+
|
|
91
|
+
By default, this will be the view itself.
|
|
92
|
+
|
|
93
|
+
@property {Object}
|
|
94
|
+
*/
|
|
95
|
+
context: function(key, value) {
|
|
96
|
+
if (value !== undefined) {
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return this;
|
|
101
|
+
}.property().cacheable(),
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
When the view is asked to render, we look for the appropriate template
|
|
105
|
+
function and invoke it, then push its result onto the passed
|
|
106
|
+
SC.RenderContext instance.
|
|
107
|
+
|
|
108
|
+
@param {SC.RenderContext} context the render context
|
|
109
|
+
*/
|
|
110
|
+
render: function(context) {
|
|
111
|
+
var template = this.get('template');
|
|
112
|
+
|
|
113
|
+
this._didRenderChildViews = YES;
|
|
114
|
+
|
|
115
|
+
context.push(template(this.get('context'), null, null, { view: this, isRenderData: true }));
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
// in TemplateView, updating is handled by observers created by helpers in the
|
|
119
|
+
// template. As a result, we create an empty update method so that the old
|
|
120
|
+
// (pre-1.5) behavior which would force a full re-render does not get activated.
|
|
121
|
+
update: function() { },
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
Since mouseUp events will not fire unless we return YES to mouseDown, the
|
|
125
|
+
default mouseDown implementation returns YES if a mouseDown method exists.
|
|
126
|
+
*/
|
|
127
|
+
mouseDown: function() {
|
|
128
|
+
if (this.mouseUp) { return YES; }
|
|
129
|
+
return NO;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
sc_require('views/template');
|
|
2
|
+
|
|
3
|
+
SC.TemplateCollectionView = SC.TemplateView.extend({
|
|
4
|
+
tagName: 'ul',
|
|
5
|
+
content: null,
|
|
6
|
+
template: SC.Handlebars.compile(''),
|
|
7
|
+
emptyView: null,
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
@private
|
|
11
|
+
When the view is initialized, set up array observers on the content array.
|
|
12
|
+
|
|
13
|
+
@returns SC.TemplateCollectionView
|
|
14
|
+
*/
|
|
15
|
+
init: function() {
|
|
16
|
+
var templateCollectionView = sc_super();
|
|
17
|
+
this._sctcv_contentDidChange();
|
|
18
|
+
return templateCollectionView;
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
// In case a default content was set, trigger the child view creation
|
|
22
|
+
// as soon as the empty layer was created
|
|
23
|
+
didCreateLayer: function() {
|
|
24
|
+
var content = this.get('content');
|
|
25
|
+
if(content) {
|
|
26
|
+
this.arrayContentDidChange(0, 0, content.get('length'));
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
itemView: 'SC.TemplateView',
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
The template used to render each item in the collection.
|
|
34
|
+
|
|
35
|
+
This should be a function that takes a content object and returns
|
|
36
|
+
a string of HTML that will be inserted into the DOM.
|
|
37
|
+
|
|
38
|
+
In general, you should set the `itemViewTemplateName` property instead of
|
|
39
|
+
setting the `itemViewTemplate` property yourself. If you created the
|
|
40
|
+
SC.TemplateCollectionView using the Handlebars {{#collection}} helper, this
|
|
41
|
+
will be set for you automatically.
|
|
42
|
+
|
|
43
|
+
@type Function
|
|
44
|
+
*/
|
|
45
|
+
itemViewTemplate: null,
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
The name of the template to lookup if no item view template is provided.
|
|
49
|
+
|
|
50
|
+
The collection will look for a template with this name in the global
|
|
51
|
+
`SC.TEMPLATES` hash. Usually this hash will be populated for you
|
|
52
|
+
automatically when you include `.handlebars` files in your project.
|
|
53
|
+
|
|
54
|
+
@type String
|
|
55
|
+
*/
|
|
56
|
+
itemViewTemplateName: null,
|
|
57
|
+
|
|
58
|
+
itemContext: null,
|
|
59
|
+
|
|
60
|
+
itemViewClass: function() {
|
|
61
|
+
var itemView = this.get('itemView');
|
|
62
|
+
var itemViewTemplate = this.get('itemViewTemplate');
|
|
63
|
+
var itemViewTemplateName = this.get('itemViewTemplateName');
|
|
64
|
+
|
|
65
|
+
// hash of properties to override in our
|
|
66
|
+
// item view class
|
|
67
|
+
var extensions = {};
|
|
68
|
+
|
|
69
|
+
if(SC.typeOf(itemView) === SC.T_STRING) {
|
|
70
|
+
itemView = SC.objectForPropertyPath(itemView);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (!itemViewTemplate && itemViewTemplateName) {
|
|
74
|
+
itemViewTemplate = this.get('templates').get(itemViewTemplateName);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (itemViewTemplate) {
|
|
78
|
+
extensions.template = itemViewTemplate;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (this.get('tagName') === 'ul' || this.get('tagName') === 'ol') {
|
|
82
|
+
extensions.tagName = 'li';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return itemView.extend(extensions);
|
|
86
|
+
}.property('itemView').cacheable(),
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
@private
|
|
90
|
+
|
|
91
|
+
When the content property of the collection changes, remove any existing
|
|
92
|
+
child views and observers, then set up an observer on the new content, if
|
|
93
|
+
needed.
|
|
94
|
+
*/
|
|
95
|
+
_sctcv_contentDidChange: function() {
|
|
96
|
+
|
|
97
|
+
this.$().empty();
|
|
98
|
+
|
|
99
|
+
var oldContent = this._content, oldLen = 0;
|
|
100
|
+
var content = this.get('content'), newLen = 0;
|
|
101
|
+
|
|
102
|
+
if (oldContent) {
|
|
103
|
+
oldContent.removeArrayObservers({
|
|
104
|
+
target: this,
|
|
105
|
+
willChange: 'arrayContentWillChange',
|
|
106
|
+
didChange: 'arrayContentDidChange'
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
oldLen = oldContent.get('length');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (content) {
|
|
113
|
+
content.addArrayObservers({
|
|
114
|
+
target: this,
|
|
115
|
+
willChange: 'arrayContentWillChange',
|
|
116
|
+
didChange: 'arrayContentDidChange'
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
newLen = content.get('length');
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
this.arrayContentWillChange(0, oldLen, newLen);
|
|
123
|
+
this._content = this.get('content');
|
|
124
|
+
this.arrayContentDidChange(0, oldLen, newLen);
|
|
125
|
+
}.observes('content'),
|
|
126
|
+
|
|
127
|
+
arrayContentWillChange: function(start, removedCount, addedCount) {
|
|
128
|
+
// If the contents were empty before and this template collection has an empty view
|
|
129
|
+
// remove it now.
|
|
130
|
+
emptyView = this.get('emptyView');
|
|
131
|
+
if (emptyView) { emptyView.$().remove(); emptyView.removeFromParent(); }
|
|
132
|
+
|
|
133
|
+
// Loop through child views that correspond with the removed items.
|
|
134
|
+
// Note that we loop from the end of the array to the beginning because
|
|
135
|
+
// we are mutating it as we go.
|
|
136
|
+
var childViews = this.get('childViews'), childView, idx, len;
|
|
137
|
+
|
|
138
|
+
len = childViews.get('length');
|
|
139
|
+
for (idx = start+removedCount-1; idx >= start; idx--) {
|
|
140
|
+
childView = childViews[idx];
|
|
141
|
+
childView.$().remove();
|
|
142
|
+
childView.removeFromParent();
|
|
143
|
+
childView.destroy();
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
Called when a mutation to the underlying content array occurs.
|
|
149
|
+
|
|
150
|
+
This method will replay that mutation against the views that compose the
|
|
151
|
+
SC.TemplateCollectionView, ensuring that the view reflects the model.
|
|
152
|
+
|
|
153
|
+
This enumerable observer is added in contentDidChange.
|
|
154
|
+
|
|
155
|
+
@param {Array} addedObjects the objects that were added to the content
|
|
156
|
+
@param {Array} removedObjects the objects that were removed from the content
|
|
157
|
+
@param {Number} changeIndex the index at which the changes occurred
|
|
158
|
+
*/
|
|
159
|
+
arrayContentDidChange: function(start, removedCount, addedCount) {
|
|
160
|
+
if (!this.get('layer')) { return; }
|
|
161
|
+
|
|
162
|
+
var content = this.get('content'),
|
|
163
|
+
itemViewClass = this.get('itemViewClass'),
|
|
164
|
+
childViews = this.get('childViews'),
|
|
165
|
+
addedViews = [],
|
|
166
|
+
renderFunc, childView, itemOptions, elem, insertAtElement, item, itemElem, idx, len;
|
|
167
|
+
|
|
168
|
+
var addedObjects = content.slice(start, start+addedCount);
|
|
169
|
+
|
|
170
|
+
// If we have content to display, create a view for
|
|
171
|
+
// each item.
|
|
172
|
+
itemOptions = this.get('itemViewOptions') || {};
|
|
173
|
+
|
|
174
|
+
elem = this.$();
|
|
175
|
+
insertAtElement = elem.find('li')[start-1] || null;
|
|
176
|
+
len = addedObjects.get('length');
|
|
177
|
+
|
|
178
|
+
// TODO: This logic is duplicated from the view helper. Refactor
|
|
179
|
+
// it so we can share logic.
|
|
180
|
+
var itemAttrs = {
|
|
181
|
+
"id": itemOptions.id,
|
|
182
|
+
"class": itemOptions['class'],
|
|
183
|
+
"classBinding": itemOptions.classBinding
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
renderFunc = function(context) {
|
|
187
|
+
sc_super();
|
|
188
|
+
SC.Handlebars.ViewHelper.applyAttributes(itemAttrs, this, context);
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
itemOptions = SC.clone(itemOptions);
|
|
192
|
+
delete itemOptions.id;
|
|
193
|
+
delete itemOptions['class'];
|
|
194
|
+
delete itemOptions.classBinding;
|
|
195
|
+
|
|
196
|
+
for (idx = 0; idx < len; idx++) {
|
|
197
|
+
item = addedObjects.objectAt(idx);
|
|
198
|
+
view = this.createChildView(itemViewClass.extend(itemOptions, {
|
|
199
|
+
content: item,
|
|
200
|
+
render: renderFunc
|
|
201
|
+
}));
|
|
202
|
+
|
|
203
|
+
var contextProperty = view.get('contextProperty');
|
|
204
|
+
if (contextProperty) {
|
|
205
|
+
view.set('context', view.get(contextProperty));
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
itemElem = view.createLayer().$();
|
|
209
|
+
if (!insertAtElement) {
|
|
210
|
+
elem.append(itemElem);
|
|
211
|
+
} else {
|
|
212
|
+
itemElem.insertAfter(insertAtElement);
|
|
213
|
+
}
|
|
214
|
+
insertAtElement = itemElem;
|
|
215
|
+
|
|
216
|
+
addedViews.push(view);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
childViews.replace(start, 0, addedViews);
|
|
220
|
+
|
|
221
|
+
var inverseTemplate = this.get('inverseTemplate');
|
|
222
|
+
if (childViews.get('length') === 0 && inverseTemplate) {
|
|
223
|
+
view = this.createChildView(SC.TemplateView.extend({
|
|
224
|
+
template: inverseTemplate,
|
|
225
|
+
content: this
|
|
226
|
+
}));
|
|
227
|
+
this.set('emptyView', view);
|
|
228
|
+
view.createLayer().$().appendTo(elem);
|
|
229
|
+
this.childViews = [view];
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// Because the layer has been modified, we need to invalidate the frame
|
|
233
|
+
// property, if it exists, at the end of the run loop. This allows it to
|
|
234
|
+
// be used inside of SC.ScrollView.
|
|
235
|
+
this.invokeLast('invalidateFrame');
|
|
236
|
+
},
|
|
237
|
+
|
|
238
|
+
invalidateFrame: function() {
|
|
239
|
+
this.notifyPropertyChange('frame');
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
|
|
@@ -0,0 +1,1524 @@
|
|
|
1
|
+
// ==========================================================================
|
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
|
3
|
+
// Copyright: ©2006-2011 Strobe Inc. and contributors.
|
|
4
|
+
// Portions ©2008-2011 Apple Inc. All rights reserved.
|
|
5
|
+
// License: Licensed under MIT license (see license.js)
|
|
6
|
+
// ==========================================================================
|
|
7
|
+
|
|
8
|
+
sc_require('system/browser');
|
|
9
|
+
sc_require('system/event');
|
|
10
|
+
sc_require('system/cursor');
|
|
11
|
+
sc_require('system/responder') ;
|
|
12
|
+
sc_require('system/theme');
|
|
13
|
+
|
|
14
|
+
sc_require('system/string') ;
|
|
15
|
+
sc_require('views/view/base') ;
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
Default property to disable or enable by default the contextMenu
|
|
20
|
+
*/
|
|
21
|
+
SC.CONTEXT_MENU_ENABLED = YES;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
Default property to disable or enable if the focus can jump to the address
|
|
25
|
+
bar or not.
|
|
26
|
+
*/
|
|
27
|
+
SC.TABBING_ONLY_INSIDE_DOCUMENT = YES;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
Tells the property (when fetched with themed()) to get its value from the renderer (if any).
|
|
31
|
+
*/
|
|
32
|
+
SC.FROM_THEME = "__FROM_THEME__"; // doesn't really matter what it is, so long as it is unique. Readability is a plus.
|
|
33
|
+
|
|
34
|
+
/** @private - custom array used for child views */
|
|
35
|
+
SC.EMPTY_CHILD_VIEWS_ARRAY = [];
|
|
36
|
+
SC.EMPTY_CHILD_VIEWS_ARRAY.needsClone = YES;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
@class
|
|
40
|
+
|
|
41
|
+
*/
|
|
42
|
+
SC.CoreView.reopen(
|
|
43
|
+
/** @scope SC.View.prototype */ {
|
|
44
|
+
|
|
45
|
+
concatenatedProperties: ['outlets', 'displayProperties', 'classNames', 'renderMixin', 'didCreateLayerMixin', 'willDestroyLayerMixin'],
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
The current pane.
|
|
49
|
+
@property {SC.Pane}
|
|
50
|
+
*/
|
|
51
|
+
pane: function() {
|
|
52
|
+
var view = this ;
|
|
53
|
+
while (view && !view.isPane) { view = view.get('parentView') ; }
|
|
54
|
+
return view ;
|
|
55
|
+
}.property('parentView').cacheable(),
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
The page this view was instantiated from. This is set by the page object
|
|
59
|
+
during instantiation.
|
|
60
|
+
|
|
61
|
+
@property {SC.Page}
|
|
62
|
+
*/
|
|
63
|
+
page: null,
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
If the view is currently inserted into the DOM of a parent view, this
|
|
67
|
+
property will point to the parent of the view.
|
|
68
|
+
*/
|
|
69
|
+
parentView: null,
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
The isVisible property determines if the view is shown in the view
|
|
73
|
+
hierarchy it is a part of. A view can have isVisible == YES and still have
|
|
74
|
+
isVisibleInWindow == NO. This occurs, for instance, when a parent view has
|
|
75
|
+
isVisible == NO. Default is YES.
|
|
76
|
+
|
|
77
|
+
The isVisible property is considered part of the layout and so changing it
|
|
78
|
+
will trigger a layout update.
|
|
79
|
+
|
|
80
|
+
@property {Boolean}
|
|
81
|
+
*/
|
|
82
|
+
isVisible: YES,
|
|
83
|
+
isVisibleBindingDefault: SC.Binding.bool(),
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
Whether the view should be displayed. This is always YES,
|
|
87
|
+
unless the visibility module is added to SC.View.
|
|
88
|
+
|
|
89
|
+
If the visibility module is added, this property will be used to
|
|
90
|
+
optimize certain behaviors on the view. For example, updates to the
|
|
91
|
+
view layer will not be performed until the view becomes visible
|
|
92
|
+
in the window.
|
|
93
|
+
*/
|
|
94
|
+
isVisibleInWindow: YES,
|
|
95
|
+
|
|
96
|
+
// ..........................................................
|
|
97
|
+
// CHILD VIEW SUPPORT
|
|
98
|
+
//
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
Array of child views. You should never edit this array directly unless
|
|
102
|
+
you are implementing createChildViews(). Most of the time, you should
|
|
103
|
+
use the accessor methods such as appendChild(), insertBefore() and
|
|
104
|
+
removeChild().
|
|
105
|
+
|
|
106
|
+
@property {Array}
|
|
107
|
+
*/
|
|
108
|
+
childViews: SC.EMPTY_CHILD_VIEWS_ARRAY,
|
|
109
|
+
|
|
110
|
+
// ..........................................................
|
|
111
|
+
// LAYER SUPPORT
|
|
112
|
+
//
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
Returns the current layer for the view. The layer for a view is only
|
|
116
|
+
generated when the view first becomes visible in the window and even
|
|
117
|
+
then it will not be computed until you request this layer property.
|
|
118
|
+
|
|
119
|
+
If the layer is not actually set on the view itself, then the layer will
|
|
120
|
+
be found by calling this.findLayerInParentLayer().
|
|
121
|
+
|
|
122
|
+
You can also set the layer by calling set on this property.
|
|
123
|
+
|
|
124
|
+
@property {DOMElement} the layer
|
|
125
|
+
*/
|
|
126
|
+
layer: function(key, value) {
|
|
127
|
+
if (value !== undefined) {
|
|
128
|
+
this._view_layer = value ;
|
|
129
|
+
|
|
130
|
+
// no layer...attempt to discover it...
|
|
131
|
+
} else {
|
|
132
|
+
value = this._view_layer;
|
|
133
|
+
if (!value) {
|
|
134
|
+
var parent = this.get('parentView');
|
|
135
|
+
if (parent) { parent = parent.get('layer'); }
|
|
136
|
+
if (parent) { this._view_layer = value = this.findLayerInParentLayer(parent); }
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return value ;
|
|
140
|
+
}.property('isVisibleInWindow').cacheable(),
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
Get a CoreQuery object for this view's layer, or pass in a selector string
|
|
144
|
+
to get a CoreQuery object for a DOM node nested within this layer.
|
|
145
|
+
|
|
146
|
+
@param {String} sel a CoreQuery-compatible selector string
|
|
147
|
+
@returns {SC.CoreQuery} the CoreQuery object for the DOM node
|
|
148
|
+
*/
|
|
149
|
+
$: function(sel) {
|
|
150
|
+
var layer = this.get('layer') ;
|
|
151
|
+
|
|
152
|
+
if(!layer) { return SC.$(); }
|
|
153
|
+
else if(sel === undefined) { return SC.$(layer); }
|
|
154
|
+
else { return SC.$(sel, layer); }
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
Returns the DOM element that should be used to hold child views when they
|
|
159
|
+
are added/remove via DOM manipulation. The default implementation simply
|
|
160
|
+
returns the layer itself. You can override this to return a DOM element
|
|
161
|
+
within the layer.
|
|
162
|
+
|
|
163
|
+
@property {DOMElement} the container layer
|
|
164
|
+
*/
|
|
165
|
+
containerLayer: function() {
|
|
166
|
+
return this.get('layer') ;
|
|
167
|
+
}.property('layer').cacheable(),
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
The ID to use when trying to locate the layer in the DOM. If you do not
|
|
171
|
+
set the layerId explicitly, then the view's GUID will be used instead.
|
|
172
|
+
This ID must be set at the time the view is created.
|
|
173
|
+
|
|
174
|
+
@property {String}
|
|
175
|
+
@readOnly
|
|
176
|
+
*/
|
|
177
|
+
layerId: function(key, value) {
|
|
178
|
+
if (value) { this._layerId = value; }
|
|
179
|
+
if (this._layerId) { return this._layerId; }
|
|
180
|
+
return SC.guidFor(this) ;
|
|
181
|
+
}.property().cacheable(),
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
Attempts to discover the layer in the parent layer. The default
|
|
185
|
+
implementation looks for an element with an ID of layerId (or the view's
|
|
186
|
+
guid if layerId is null). You can override this method to provide your
|
|
187
|
+
own form of lookup. For example, if you want to discover your layer using
|
|
188
|
+
a CSS class name instead of an ID.
|
|
189
|
+
|
|
190
|
+
@param {DOMElement} parentLayer the parent's DOM layer
|
|
191
|
+
@returns {DOMElement} the discovered layer
|
|
192
|
+
*/
|
|
193
|
+
findLayerInParentLayer: function(parentLayer) {
|
|
194
|
+
var id = "#" + this.get('layerId');
|
|
195
|
+
return jQuery(id)[0] || jQuery(id, parentLayer)[0] ;
|
|
196
|
+
},
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
Returns YES if the receiver is a subview of a given view or if it's
|
|
200
|
+
identical to that view. Otherwise, it returns NO.
|
|
201
|
+
|
|
202
|
+
@property {SC.View} view
|
|
203
|
+
*/
|
|
204
|
+
isDescendantOf: function(view) {
|
|
205
|
+
var parentView = this.get('parentView');
|
|
206
|
+
|
|
207
|
+
if(this === view) { return YES; }
|
|
208
|
+
else if(parentView) { return parentView.isDescendantOf(view); }
|
|
209
|
+
else { return NO; }
|
|
210
|
+
},
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
This method is invoked whenever a display property changes. It will set
|
|
214
|
+
the layerNeedsUpdate method to YES. If you need to perform additional
|
|
215
|
+
setup whenever the display changes, you can override this method as well.
|
|
216
|
+
|
|
217
|
+
@returns {SC.View} receiver
|
|
218
|
+
*/
|
|
219
|
+
displayDidChange: function() {
|
|
220
|
+
this.set('layerNeedsUpdate', YES) ;
|
|
221
|
+
return this;
|
|
222
|
+
},
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
Marks the view as needing a display update if the isVisible property changes.
|
|
226
|
+
|
|
227
|
+
Note that this behavior is identical to a display property. It is broken out
|
|
228
|
+
into its own observer so that it can be overridden with additional
|
|
229
|
+
functionality if the visibility module is applied to SC.View.
|
|
230
|
+
*/
|
|
231
|
+
_sc_isVisibleDidChange: function() {
|
|
232
|
+
this.displayDidChange();
|
|
233
|
+
}.observes('isVisible'),
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
Setting this property to YES will cause the updateLayerIfNeeded method to
|
|
237
|
+
be invoked at the end of the runloop. You can also force a view to update
|
|
238
|
+
sooner by calling updateLayerIfNeeded() directly. The method will update
|
|
239
|
+
the layer only if this property is YES.
|
|
240
|
+
|
|
241
|
+
@property {Boolean}
|
|
242
|
+
@test in updateLayer
|
|
243
|
+
*/
|
|
244
|
+
layerNeedsUpdate: NO,
|
|
245
|
+
|
|
246
|
+
/** @private
|
|
247
|
+
Schedules the updateLayerIfNeeded method to run at the end of the runloop
|
|
248
|
+
if layerNeedsUpdate is set to YES.
|
|
249
|
+
*/
|
|
250
|
+
_view_layerNeedsUpdateDidChange: function() {
|
|
251
|
+
if (this.get('layerNeedsUpdate')) {
|
|
252
|
+
this.invokeOnce(this.updateLayerIfNeeded) ;
|
|
253
|
+
}
|
|
254
|
+
}.observes('layerNeedsUpdate'),
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
Updates the layer only if the view is visible onscreen and if
|
|
258
|
+
layerNeedsUpdate is set to YES. Normally you will not invoke this method
|
|
259
|
+
directly. Instead you set the layerNeedsUpdate property to YES and this
|
|
260
|
+
method will be called once at the end of the runloop.
|
|
261
|
+
|
|
262
|
+
If you need to update view's layer sooner than the end of the runloop, you
|
|
263
|
+
can call this method directly. If your view is not visible in the window
|
|
264
|
+
but you want it to update anyway, then call this method, passing YES for
|
|
265
|
+
the 'skipIsVisibleInWindowCheck' parameter.
|
|
266
|
+
|
|
267
|
+
You should not override this method. Instead override updateLayer() or
|
|
268
|
+
render().
|
|
269
|
+
|
|
270
|
+
@returns {SC.View} receiver
|
|
271
|
+
@test in updateLayer
|
|
272
|
+
*/
|
|
273
|
+
updateLayerIfNeeded: function(skipIsVisibleInWindowCheck) {
|
|
274
|
+
var needsUpdate = this.get('layerNeedsUpdate'),
|
|
275
|
+
shouldUpdate = needsUpdate && (skipIsVisibleInWindowCheck || this.get('isVisibleInWindow'));
|
|
276
|
+
if (shouldUpdate) {
|
|
277
|
+
// only update a layer if it already exists
|
|
278
|
+
if (this.get('layer')) {
|
|
279
|
+
this.beginPropertyChanges() ;
|
|
280
|
+
this.set('layerNeedsUpdate', NO) ;
|
|
281
|
+
this.updateLayer() ;
|
|
282
|
+
this.endPropertyChanges() ;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
return this ;
|
|
287
|
+
},
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
This is the core method invoked to update a view layer whenever it has
|
|
291
|
+
changed. This method simply creates a render context focused on the
|
|
292
|
+
layer element and then calls your render() method.
|
|
293
|
+
|
|
294
|
+
You will not usually call or override this method directly. Instead you
|
|
295
|
+
should set the layerNeedsUpdate property to YES to cause this method to
|
|
296
|
+
run at the end of the run loop, or you can call updateLayerIfNeeded()
|
|
297
|
+
to force the layer to update immediately.
|
|
298
|
+
|
|
299
|
+
Instead of overriding this method, consider overidding the render() method
|
|
300
|
+
instead, which is called both when creating and updating a layer. If you
|
|
301
|
+
do not want your render() method called when updating a layer, then you
|
|
302
|
+
should override this method instead.
|
|
303
|
+
|
|
304
|
+
@param optionalContext provided only for backwards-compatibility.
|
|
305
|
+
|
|
306
|
+
@returns {SC.View} receiver
|
|
307
|
+
*/
|
|
308
|
+
updateLayer: function(optionalContext) {
|
|
309
|
+
var mixins, idx, len, hasLegacyRenderMethod;
|
|
310
|
+
|
|
311
|
+
var context = optionalContext || this.renderContext(this.get('layer')) ;
|
|
312
|
+
this._renderLayerSettings(context, NO);
|
|
313
|
+
|
|
314
|
+
// If the render method takes two parameters, we assume that it is a
|
|
315
|
+
// legacy implementation that takes context and firstTime. If it has only
|
|
316
|
+
// one parameter, we assume it is the render delegates style that requires
|
|
317
|
+
// only context. Note that, for backwards compatibility, the default
|
|
318
|
+
// SC.View implementation of render uses the old style.
|
|
319
|
+
hasLegacyRenderMethod = !this.update;
|
|
320
|
+
// Call render with firstTime set to NO to indicate an update, rather than
|
|
321
|
+
// full re-render, should be performed.
|
|
322
|
+
if (hasLegacyRenderMethod) {
|
|
323
|
+
this.render(context, NO);
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
this.update(context.$());
|
|
327
|
+
}
|
|
328
|
+
if (mixins = this.renderMixin) {
|
|
329
|
+
len = mixins.length;
|
|
330
|
+
for(idx=0; idx<len; ++idx) { mixins[idx].call(this, context, NO) ; }
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
context.update() ;
|
|
334
|
+
if (context._innerHTMLReplaced) {
|
|
335
|
+
var pane = this.get('pane');
|
|
336
|
+
if(pane && pane.get('isPaneAttached')) {
|
|
337
|
+
this._notifyDidAppendToDocument();
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// If this view uses static layout, then notify that the frame (likely)
|
|
342
|
+
// changed.
|
|
343
|
+
if (this.useStaticLayout) { this.viewDidResize(); }
|
|
344
|
+
|
|
345
|
+
if (this.didUpdateLayer) { this.didUpdateLayer(); } // call to update DOM
|
|
346
|
+
if(this.designer && this.designer.viewDidUpdateLayer) {
|
|
347
|
+
this.designer.viewDidUpdateLayer(); //let the designer know
|
|
348
|
+
}
|
|
349
|
+
return this ;
|
|
350
|
+
},
|
|
351
|
+
|
|
352
|
+
parentViewDidResize: function() {
|
|
353
|
+
if (!this.get('hasLayout')) { this.notifyPropertyChange('frame'); }
|
|
354
|
+
this.viewDidResize();
|
|
355
|
+
},
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
Override this in a child class to define behavior that should be invoked
|
|
359
|
+
when a parent's view was resized.
|
|
360
|
+
*/
|
|
361
|
+
viewDidResize: function() {},
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
Creates a new renderContext with the passed tagName or element. You
|
|
365
|
+
can override this method to provide further customization to the context
|
|
366
|
+
if needed. Normally you will not need to call or override this method.
|
|
367
|
+
|
|
368
|
+
@returns {SC.RenderContext}
|
|
369
|
+
*/
|
|
370
|
+
renderContext: function(tagNameOrElement) {
|
|
371
|
+
return SC.RenderContext(tagNameOrElement) ;
|
|
372
|
+
},
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
Creates the layer by creating a renderContext and invoking the view's
|
|
376
|
+
render() method. This will only create the layer if the layer does not
|
|
377
|
+
already exist.
|
|
378
|
+
|
|
379
|
+
When you create a layer, it is expected that your render() method will
|
|
380
|
+
also render the HTML for all child views as well. This method will
|
|
381
|
+
notify the view along with any of its childViews that its layer has been
|
|
382
|
+
created.
|
|
383
|
+
|
|
384
|
+
@returns {SC.View} receiver
|
|
385
|
+
*/
|
|
386
|
+
createLayer: function() {
|
|
387
|
+
if (this.get('layer')) { return this ; } // nothing to do
|
|
388
|
+
|
|
389
|
+
var context = this.renderContext(this.get('tagName')) ;
|
|
390
|
+
|
|
391
|
+
// now prepare the content like normal.
|
|
392
|
+
this.renderToContext(context) ;
|
|
393
|
+
this.set('layer', context.element()) ;
|
|
394
|
+
|
|
395
|
+
// now notify the view and its child views..
|
|
396
|
+
this._notifyDidCreateLayer() ;
|
|
397
|
+
|
|
398
|
+
return this ;
|
|
399
|
+
},
|
|
400
|
+
|
|
401
|
+
/** @private -
|
|
402
|
+
Invokes the receivers didCreateLayer() method if it exists and then
|
|
403
|
+
invokes the same on all child views.
|
|
404
|
+
*/
|
|
405
|
+
_notifyDidCreateLayer: function() {
|
|
406
|
+
this.notifyPropertyChange('layer');
|
|
407
|
+
|
|
408
|
+
if (this.didCreateLayer) { this.didCreateLayer() ; }
|
|
409
|
+
|
|
410
|
+
// and notify others
|
|
411
|
+
var mixins = this.didCreateLayerMixin, len, idx,
|
|
412
|
+
childViews = this.get('childViews'),
|
|
413
|
+
childView;
|
|
414
|
+
if (mixins) {
|
|
415
|
+
len = mixins.length ;
|
|
416
|
+
for (idx=0; idx<len; ++idx) { mixins[idx].call(this) ; }
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
len = childViews.length ;
|
|
420
|
+
for (idx=0; idx<len; ++idx) {
|
|
421
|
+
childView = childViews[idx];
|
|
422
|
+
if (!childView) { continue; }
|
|
423
|
+
|
|
424
|
+
// A parent view creating a layer might result in the creation of a
|
|
425
|
+
// child view's DOM node being created via a render context without
|
|
426
|
+
// createLayer() being invoked on the child. In such cases, if anyone
|
|
427
|
+
// had requested 'layer' and it was cached as null, we need to
|
|
428
|
+
// invalidate it.
|
|
429
|
+
childView.notifyPropertyChange('layer');
|
|
430
|
+
|
|
431
|
+
// A strange case, that a childView's frame won't be correct before
|
|
432
|
+
// we have a layer, if the childView doesn't have a fixed layout
|
|
433
|
+
// and we are using static layout
|
|
434
|
+
if (this.get('useStaticLayout')) {
|
|
435
|
+
if (!childView.get('isFixedLayout')) { childView.viewDidResize(); }
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
childView._notifyDidCreateLayer() ;
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
Destroys any existing layer along with the layer for any child views as
|
|
444
|
+
well. If the view does not currently have a layer, then this method will
|
|
445
|
+
do nothing.
|
|
446
|
+
|
|
447
|
+
If you implement willDestroyLayer() on your view or if any mixins
|
|
448
|
+
implement willDestroLayerMixin(), then this method will be invoked on your
|
|
449
|
+
view before your layer is destroyed to give you a chance to clean up any
|
|
450
|
+
event handlers, etc.
|
|
451
|
+
|
|
452
|
+
If you write a willDestroyLayer() handler, you can assume that your
|
|
453
|
+
didCreateLayer() handler was called earlier for the same layer.
|
|
454
|
+
|
|
455
|
+
Normally you will not call or override this method yourself, but you may
|
|
456
|
+
want to implement the above callbacks when it is run.
|
|
457
|
+
|
|
458
|
+
@returns {SC.View} receiver
|
|
459
|
+
*/
|
|
460
|
+
destroyLayer: function() {
|
|
461
|
+
var layer = this.get('layer') ;
|
|
462
|
+
if (layer) {
|
|
463
|
+
|
|
464
|
+
// Now notify the view and its child views. It will also set the
|
|
465
|
+
// layer property to null.
|
|
466
|
+
this._notifyWillDestroyLayer() ;
|
|
467
|
+
|
|
468
|
+
// do final cleanup
|
|
469
|
+
if (layer.parentNode) { layer.parentNode.removeChild(layer) ; }
|
|
470
|
+
layer = null ;
|
|
471
|
+
}
|
|
472
|
+
return this ;
|
|
473
|
+
},
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
Destroys and recreates the current layer. This can be more efficient than
|
|
477
|
+
modifying individual child views.
|
|
478
|
+
|
|
479
|
+
@returns {SC.View} receiver
|
|
480
|
+
*/
|
|
481
|
+
replaceLayer: function() {
|
|
482
|
+
this.destroyLayer();
|
|
483
|
+
//this.set('layerLocationNeedsUpdate', YES) ;
|
|
484
|
+
this.invokeOnce(this.updateLayerLocation) ;
|
|
485
|
+
},
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
If the parent view has changed, we need to insert this
|
|
489
|
+
view's layer into the layer of the new parent view.
|
|
490
|
+
*/
|
|
491
|
+
parentViewDidChange: function() {
|
|
492
|
+
this.parentViewDidResize();
|
|
493
|
+
this.updateLayerLocation();
|
|
494
|
+
},
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
Set to YES when the view's layer location is dirty. You can call
|
|
498
|
+
updateLayerLocationIfNeeded() to clear this flag if it is set.
|
|
499
|
+
|
|
500
|
+
@property {Boolean}
|
|
501
|
+
*/
|
|
502
|
+
layerLocationNeedsUpdate: NO,
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
Calls updateLayerLocation(), but only if the view's layer location
|
|
506
|
+
currently needs to be updated. This method is called automatically at
|
|
507
|
+
the end of a run loop if you have called parentViewDidChange() at some
|
|
508
|
+
point.
|
|
509
|
+
|
|
510
|
+
@property {Boolean} force This property is ignored.
|
|
511
|
+
@returns {SC.View} receiver
|
|
512
|
+
@test in updateLayerLocation
|
|
513
|
+
*/
|
|
514
|
+
updateLayerLocationIfNeeded: function(force) {
|
|
515
|
+
if (this.get('layerLocationNeedsUpdate')) {
|
|
516
|
+
this.updateLayerLocation() ;
|
|
517
|
+
}
|
|
518
|
+
return this ;
|
|
519
|
+
},
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
This method is called when a view changes its location in the view
|
|
523
|
+
hierarchy. This method will update the underlying DOM-location of the
|
|
524
|
+
layer so that it reflects the new location.
|
|
525
|
+
|
|
526
|
+
@returns {SC.View} receiver
|
|
527
|
+
*/
|
|
528
|
+
updateLayerLocation: function() {
|
|
529
|
+
// collect some useful value
|
|
530
|
+
// if there is no node for some reason, just exit
|
|
531
|
+
var node = this.get('layer'),
|
|
532
|
+
parentView = this.get('parentView'),
|
|
533
|
+
parentNode = parentView ? parentView.get('containerLayer') : null ;
|
|
534
|
+
|
|
535
|
+
// remove node from current parentNode if the node does not match the new
|
|
536
|
+
// parent node.
|
|
537
|
+
if (node && node.parentNode && node.parentNode !== parentNode) {
|
|
538
|
+
node.parentNode.removeChild(node);
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
// CASE 1: no new parentView. just remove from parent (above).
|
|
542
|
+
if (!parentView) {
|
|
543
|
+
if (node && node.parentNode) { node.parentNode.removeChild(node); }
|
|
544
|
+
|
|
545
|
+
// CASE 2: parentView has no layer, view has layer. destroy layer
|
|
546
|
+
// CASE 3: parentView has no layer, view has no layer, nothing to do
|
|
547
|
+
} else if (!parentNode) {
|
|
548
|
+
if (node) {
|
|
549
|
+
if (node.parentNode) { node.parentNode.removeChild(node); }
|
|
550
|
+
this.destroyLayer();
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
// CASE 4: parentView has layer, view has no layer. create layer & add
|
|
554
|
+
// CASE 5: parentView has layer, view has layer. move layer
|
|
555
|
+
} else {
|
|
556
|
+
if (!node) {
|
|
557
|
+
this.createLayer() ;
|
|
558
|
+
node = this.get('layer') ;
|
|
559
|
+
if (!node) { return; } // can't do anything without a node.
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
var siblings = parentView.get('childViews'),
|
|
563
|
+
nextView = siblings.objectAt(siblings.indexOf(this)+1),
|
|
564
|
+
nextNode = (nextView) ? nextView.get('layer') : null ;
|
|
565
|
+
|
|
566
|
+
// before we add to parent node, make sure that the nextNode exists...
|
|
567
|
+
if (nextView && (!nextNode || nextNode.parentNode!==parentNode)) {
|
|
568
|
+
nextView.updateLayerLocationIfNeeded() ;
|
|
569
|
+
nextNode = nextView.get('layer') ;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
// add to parentNode if needed.
|
|
573
|
+
if ((node.parentNode!==parentNode) || (node.nextSibling!==nextNode)) {
|
|
574
|
+
parentNode.insertBefore(node, nextNode) ;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
parentNode = parentView = node = nextNode = null ; // avoid memory leaks
|
|
579
|
+
|
|
580
|
+
this.set('layerLocationNeedsUpdate', NO) ;
|
|
581
|
+
|
|
582
|
+
return this ;
|
|
583
|
+
},
|
|
584
|
+
|
|
585
|
+
/** @private -
|
|
586
|
+
Invokes willDestroyLayer() on view and child views. Then sets layer to
|
|
587
|
+
null for receiver.
|
|
588
|
+
*/
|
|
589
|
+
_notifyWillDestroyLayer: function() {
|
|
590
|
+
if (this.willDestroyLayer) { this.willDestroyLayer() ; }
|
|
591
|
+
var mixins = this.willDestroyLayerMixin, len, idx,
|
|
592
|
+
childViews = this.get('childViews') ;
|
|
593
|
+
if (mixins) {
|
|
594
|
+
len = mixins.length ;
|
|
595
|
+
for (idx=0; idx<len; ++idx) { mixins[idx].call(this) ; }
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
len = childViews.length ;
|
|
599
|
+
for (idx=0; idx<len; ++idx) { childViews[idx]._notifyWillDestroyLayer() ; }
|
|
600
|
+
|
|
601
|
+
this.set('layer', null) ;
|
|
602
|
+
},
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
/**
|
|
607
|
+
@private
|
|
608
|
+
|
|
609
|
+
Renders to a context.
|
|
610
|
+
Rendering only happens for the initial rendering. Further updates happen in updateLayer,
|
|
611
|
+
and are not done to contexts, but to layers.
|
|
612
|
+
Note: You should not generally override nor directly call this method. This method is only
|
|
613
|
+
called by createLayer to set up the layer initially, and by renderChildViews, to write to
|
|
614
|
+
a context.
|
|
615
|
+
|
|
616
|
+
@param {SC.RenderContext} context the render context.
|
|
617
|
+
@param {Boolean} firstTime Provided for compatibility when rendering legacy views only.
|
|
618
|
+
*/
|
|
619
|
+
renderToContext: function(context, firstTime) {
|
|
620
|
+
var hasLegacyRenderMethod, mixins, idx, len;
|
|
621
|
+
|
|
622
|
+
this.beginPropertyChanges() ;
|
|
623
|
+
this.set('layerNeedsUpdate', NO) ;
|
|
624
|
+
|
|
625
|
+
if (SC.none(firstTime)) { firstTime = YES; }
|
|
626
|
+
|
|
627
|
+
this._renderLayerSettings(context, firstTime);
|
|
628
|
+
|
|
629
|
+
// If the render method takes two parameters, we assume that it is a
|
|
630
|
+
// legacy implementation that takes context and firstTime. If it has only
|
|
631
|
+
// one parameter, we assume it is the render delegates style that requires
|
|
632
|
+
// only context. Note that, for backwards compatibility, the default
|
|
633
|
+
// SC.View implementation of render uses the old style.
|
|
634
|
+
hasLegacyRenderMethod = !this.update;
|
|
635
|
+
|
|
636
|
+
// Let the render method handle rendering. If we have a render delegate
|
|
637
|
+
// object set, it will be used there.
|
|
638
|
+
if (hasLegacyRenderMethod) {
|
|
639
|
+
this.render(context, firstTime);
|
|
640
|
+
}
|
|
641
|
+
// This view implements the render delegate protocol.
|
|
642
|
+
else {
|
|
643
|
+
if (firstTime) {
|
|
644
|
+
this.render(context);
|
|
645
|
+
} else {
|
|
646
|
+
this.update(context.$());
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
// If we've made it this far and renderChildViews() was never called,
|
|
651
|
+
// render any child views now.
|
|
652
|
+
if (firstTime && !this._didRenderChildViews) { this.renderChildViews(context, firstTime); }
|
|
653
|
+
// Reset the flag so that if the layer is recreated we re-render the child views
|
|
654
|
+
this._didRenderChildViews = NO;
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
if (mixins = this.renderMixin) {
|
|
658
|
+
len = mixins.length;
|
|
659
|
+
for(idx=0; idx<len; ++idx) { mixins[idx].call(this, context, firstTime) ; }
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
this.endPropertyChanges() ;
|
|
663
|
+
},
|
|
664
|
+
|
|
665
|
+
_renderLayerSettings: function(context, firstTime) {
|
|
666
|
+
context.resetClassNames();
|
|
667
|
+
context.resetStyles();
|
|
668
|
+
|
|
669
|
+
this.applyAttributesToContext(context);
|
|
670
|
+
},
|
|
671
|
+
|
|
672
|
+
applyAttributesToContext: function(context) {
|
|
673
|
+
context.addClass(this.get('classNames'));
|
|
674
|
+
|
|
675
|
+
if (this.get('isTextSelectable')) { context.addClass('allow-select'); }
|
|
676
|
+
if (!this.get('isVisible')) { context.addClass('sc-hidden'); }
|
|
677
|
+
if (this.get('isFirstResponder')) { context.addClass('focus'); }
|
|
678
|
+
|
|
679
|
+
context.id(this.get('layerId'));
|
|
680
|
+
context.attr('role', this.get('ariaRole'));
|
|
681
|
+
},
|
|
682
|
+
|
|
683
|
+
/**
|
|
684
|
+
@private
|
|
685
|
+
|
|
686
|
+
Invoked by createLayer() and updateLayer() to actually render a context.
|
|
687
|
+
This method calls the render() method on your view along with any
|
|
688
|
+
renderMixin() methods supplied by mixins you might have added.
|
|
689
|
+
|
|
690
|
+
You should not override this method directly. Nor should you call it. It is OLD.
|
|
691
|
+
|
|
692
|
+
@param {SC.RenderContext} context the render context
|
|
693
|
+
@param {Boolean} firstTime YES if this is creating a layer
|
|
694
|
+
@returns {void}
|
|
695
|
+
*/
|
|
696
|
+
prepareContext: function(context, firstTime) {
|
|
697
|
+
// eventually, firstTime will be removed because it is ugly.
|
|
698
|
+
// for now, we will sense whether we are doing things the ugly way or not.
|
|
699
|
+
// if ugly, we will allow updates through.
|
|
700
|
+
if (firstTime !== false) { firstTime = YES; } // the GOOD code path :)
|
|
701
|
+
|
|
702
|
+
if (firstTime) {
|
|
703
|
+
this.renderToContext(context);
|
|
704
|
+
} else {
|
|
705
|
+
this.updateLayer(context);
|
|
706
|
+
}
|
|
707
|
+
},
|
|
708
|
+
|
|
709
|
+
/**
|
|
710
|
+
Your render method should invoke this method to render any child views,
|
|
711
|
+
especially if this is the first time the view will be rendered. This will
|
|
712
|
+
walk down the childView chain, rendering all of the children in a nested
|
|
713
|
+
way.
|
|
714
|
+
|
|
715
|
+
@param {SC.RenderContext} context the context
|
|
716
|
+
@param {Boolean} firstName true if the layer is being created
|
|
717
|
+
@returns {SC.RenderContext} the render context
|
|
718
|
+
@test in render
|
|
719
|
+
*/
|
|
720
|
+
renderChildViews: function(context, firstTime) {
|
|
721
|
+
var cv = this.get('childViews'), len = cv.length, idx, view ;
|
|
722
|
+
for (idx=0; idx<len; ++idx) {
|
|
723
|
+
view = cv[idx] ;
|
|
724
|
+
if (!view) { continue; }
|
|
725
|
+
context = context.begin(view.get('tagName')) ;
|
|
726
|
+
view.renderToContext(context, firstTime);
|
|
727
|
+
context = context.end() ;
|
|
728
|
+
}
|
|
729
|
+
this._didRenderChildViews = YES;
|
|
730
|
+
|
|
731
|
+
return context;
|
|
732
|
+
},
|
|
733
|
+
|
|
734
|
+
/** @private -
|
|
735
|
+
override to add support for theming or in your view
|
|
736
|
+
*/
|
|
737
|
+
render: function() { },
|
|
738
|
+
|
|
739
|
+
/** @private -
|
|
740
|
+
Invokes the receivers didAppendLayerToDocument() method if it exists and
|
|
741
|
+
then invokes the same on all child views.
|
|
742
|
+
*/
|
|
743
|
+
|
|
744
|
+
_notifyDidAppendToDocument: function() {
|
|
745
|
+
if (!this.get('hasLayout')) { this.notifyPropertyChange('frame'); }
|
|
746
|
+
if (this.didAppendToDocument) { this.didAppendToDocument(); }
|
|
747
|
+
|
|
748
|
+
var i=0, child, childLen, children = this.get('childViews');
|
|
749
|
+
for(i=0, childLen=children.length; i<childLen; i++) {
|
|
750
|
+
child = children[i];
|
|
751
|
+
if(child._notifyDidAppendToDocument){
|
|
752
|
+
child._notifyDidAppendToDocument();
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
},
|
|
756
|
+
|
|
757
|
+
childViewsObserver: function(){
|
|
758
|
+
var childViews = this.get('childViews'), i, iLen, child;
|
|
759
|
+
for(i=0, iLen = childViews.length; i<iLen; i++){
|
|
760
|
+
child = childViews[i];
|
|
761
|
+
if(child._notifyDidAppendToDocument){
|
|
762
|
+
child._notifyDidAppendToDocument();
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
}.observes('childViews'),
|
|
766
|
+
|
|
767
|
+
// ..........................................................
|
|
768
|
+
// STANDARD RENDER PROPERTIES
|
|
769
|
+
//
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
Tag name for the view's outer element. The tag name is only used when
|
|
773
|
+
a layer is first created. If you change the tagName for an element, you
|
|
774
|
+
must destroy and recreate the view layer.
|
|
775
|
+
|
|
776
|
+
@property {String}
|
|
777
|
+
*/
|
|
778
|
+
tagName: 'div',
|
|
779
|
+
|
|
780
|
+
/**
|
|
781
|
+
The WAI-ARIA role of the control represented by this view. For example, a
|
|
782
|
+
button may have a role of type 'button', or a pane may have a role of
|
|
783
|
+
type 'alertdialog'. This property is used by assistive software to help
|
|
784
|
+
visually challenged users navigate rich web applications.
|
|
785
|
+
|
|
786
|
+
The full list of valid WAI-ARIA roles is available at:
|
|
787
|
+
http://www.w3.org/TR/wai-aria/roles#roles_categorization
|
|
788
|
+
|
|
789
|
+
@property {String}
|
|
790
|
+
*/
|
|
791
|
+
ariaRole: null,
|
|
792
|
+
|
|
793
|
+
/**
|
|
794
|
+
Standard CSS class names to apply to the view's outer element. This
|
|
795
|
+
property automatically inherits any class names defined by the view's
|
|
796
|
+
superclasses as well.
|
|
797
|
+
|
|
798
|
+
@property {Array}
|
|
799
|
+
*/
|
|
800
|
+
classNames: [],
|
|
801
|
+
|
|
802
|
+
/**
|
|
803
|
+
Tool tip property that will be set to the title attribute on the HTML
|
|
804
|
+
rendered element.
|
|
805
|
+
|
|
806
|
+
@property {String}
|
|
807
|
+
*/
|
|
808
|
+
toolTip: null,
|
|
809
|
+
|
|
810
|
+
/**
|
|
811
|
+
The computed tooltip. This is generated by localizing the toolTip
|
|
812
|
+
property if necessary.
|
|
813
|
+
|
|
814
|
+
@property {String}
|
|
815
|
+
*/
|
|
816
|
+
displayToolTip: function() {
|
|
817
|
+
var ret = this.get('toolTip');
|
|
818
|
+
return (ret && this.get('localize')) ? SC.String.loc(ret) : (ret || '');
|
|
819
|
+
}.property('toolTip','localize').cacheable(),
|
|
820
|
+
|
|
821
|
+
/**
|
|
822
|
+
Determines if the user can select text within the view. Normally this is
|
|
823
|
+
set to NO to disable text selection. You should set this to YES if you
|
|
824
|
+
are creating a view that includes editable text. Otherwise, settings this
|
|
825
|
+
to YES will probably make your controls harder to use and it is not
|
|
826
|
+
recommended.
|
|
827
|
+
|
|
828
|
+
@property {Boolean}
|
|
829
|
+
@readOnly
|
|
830
|
+
*/
|
|
831
|
+
isTextSelectable: NO,
|
|
832
|
+
|
|
833
|
+
/**
|
|
834
|
+
You can set this array to include any properties that should immediately
|
|
835
|
+
invalidate the display. The display will be automatically invalidated
|
|
836
|
+
when one of these properties change.
|
|
837
|
+
|
|
838
|
+
These are the properties that will be visible to any Render Delegate.
|
|
839
|
+
When the RenderDelegate asks for a property it needs, the view checks the
|
|
840
|
+
displayProperties array. It first looks for the property name prefixed
|
|
841
|
+
by 'display'; for instance, if the render delegate needs a 'title',
|
|
842
|
+
the view will attempt to find 'displayTitle'. If there is no 'displayTitle'
|
|
843
|
+
in displayProperties, the view will then try 'title'. If 'title' is not
|
|
844
|
+
in displayProperties either, an error will be thrown.
|
|
845
|
+
|
|
846
|
+
This allows you to avoid collisions between your view's API and the Render
|
|
847
|
+
Delegate's API.
|
|
848
|
+
|
|
849
|
+
Implementation note: 'isVisible' is also effectively a display property,
|
|
850
|
+
but it is not declared as such because the same effect is implemented
|
|
851
|
+
inside _sc_isVisibleDidChange(). This avoids having two observers on
|
|
852
|
+
'isVisible', which is:
|
|
853
|
+
a. More efficient
|
|
854
|
+
b. More correct, because we can guarantee the order of operations
|
|
855
|
+
|
|
856
|
+
@property {Array}
|
|
857
|
+
@readOnly
|
|
858
|
+
*/
|
|
859
|
+
displayProperties: ['isFirstResponder'],
|
|
860
|
+
|
|
861
|
+
// .......................................................
|
|
862
|
+
// SC.RESPONDER SUPPORT
|
|
863
|
+
//
|
|
864
|
+
|
|
865
|
+
/** @property
|
|
866
|
+
The nextResponder is usually the parentView.
|
|
867
|
+
*/
|
|
868
|
+
nextResponder: function() {
|
|
869
|
+
return this.get('parentView') ;
|
|
870
|
+
}.property('parentView').cacheable(),
|
|
871
|
+
|
|
872
|
+
|
|
873
|
+
/** @property
|
|
874
|
+
Set to YES if your view is willing to accept first responder status. This
|
|
875
|
+
is used when calculcating key responder loop.
|
|
876
|
+
*/
|
|
877
|
+
acceptsFirstResponder: NO,
|
|
878
|
+
|
|
879
|
+
// .......................................................
|
|
880
|
+
// CORE DISPLAY METHODS
|
|
881
|
+
//
|
|
882
|
+
|
|
883
|
+
/** @private
|
|
884
|
+
Setup a view, but do not finish waking it up.
|
|
885
|
+
- configure childViews
|
|
886
|
+
- Determine the view's theme
|
|
887
|
+
- Fetch a render delegate from the theme, if necessary
|
|
888
|
+
- register the view with the global views hash, which is used for event
|
|
889
|
+
dispatch
|
|
890
|
+
*/
|
|
891
|
+
init: function() {
|
|
892
|
+
var parentView = this.get('parentView'),
|
|
893
|
+
path, root, lp, displayProperties ;
|
|
894
|
+
|
|
895
|
+
sc_super();
|
|
896
|
+
|
|
897
|
+
// Register the view for event handling. This hash is used by
|
|
898
|
+
// SC.RootResponder to dispatch incoming events.
|
|
899
|
+
SC.View.views[this.get('layerId')] = this;
|
|
900
|
+
|
|
901
|
+
// setup child views. be sure to clone the child views array first
|
|
902
|
+
this.childViews = this.get('childViews').slice() ;
|
|
903
|
+
this.createChildViews() ; // setup child Views
|
|
904
|
+
|
|
905
|
+
// register display property observers ..
|
|
906
|
+
// TODO: Optimize into class setup
|
|
907
|
+
displayProperties = this.get('displayProperties') ;
|
|
908
|
+
for(var i=0, l=displayProperties.length; i<l; i++) {
|
|
909
|
+
this.addObserver(displayProperties[i], this, this.displayDidChange);
|
|
910
|
+
}
|
|
911
|
+
},
|
|
912
|
+
|
|
913
|
+
/**
|
|
914
|
+
Wakes up the view. The default implementation immediately syncs any
|
|
915
|
+
bindings, which may cause the view to need its display updated. You
|
|
916
|
+
can override this method to perform any additional setup. Be sure to
|
|
917
|
+
call sc_super to setup bindings and to call awake on childViews.
|
|
918
|
+
|
|
919
|
+
It is best to awake a view before you add it to the DOM. This way when
|
|
920
|
+
the DOM is generated, it will have the correct initial values and will
|
|
921
|
+
not require any additional setup.
|
|
922
|
+
|
|
923
|
+
@returns {void}
|
|
924
|
+
*/
|
|
925
|
+
awake: function() {
|
|
926
|
+
sc_super();
|
|
927
|
+
var childViews = this.get('childViews'), len = childViews.length, idx ;
|
|
928
|
+
for (idx=0; idx<len; ++idx) {
|
|
929
|
+
if (!childViews[idx]) { continue ; }
|
|
930
|
+
childViews[idx].awake() ;
|
|
931
|
+
}
|
|
932
|
+
},
|
|
933
|
+
|
|
934
|
+
/**
|
|
935
|
+
Frame describes the current bounding rect for your view. This is always
|
|
936
|
+
measured from the top-left corner of the parent view.
|
|
937
|
+
|
|
938
|
+
@property {Rect}
|
|
939
|
+
@test in layoutStyle
|
|
940
|
+
*/
|
|
941
|
+
frame: function() {
|
|
942
|
+
return this.computeFrameWithParentFrame(null) ;
|
|
943
|
+
}.property('useStaticLayout').cacheable(), // We depend on the layout, but layoutDidChange will call viewDidResize to check the frame for us
|
|
944
|
+
|
|
945
|
+
/**
|
|
946
|
+
Computes the frame of the view by examining the view's DOM representation.
|
|
947
|
+
If no representation exists, returns null.
|
|
948
|
+
|
|
949
|
+
If the view has a parent view, the parent's bounds will be taken into account when
|
|
950
|
+
calculating the frame.
|
|
951
|
+
|
|
952
|
+
@returns {Rect} the computed frame
|
|
953
|
+
*/
|
|
954
|
+
computeFrameWithParentFrame: function() {
|
|
955
|
+
var layer, // The view's layer
|
|
956
|
+
pv = this.get('parentView'), // The view's parent view (if it exists)
|
|
957
|
+
f; // The layer's coordinates in the document
|
|
958
|
+
|
|
959
|
+
// need layer to be able to compute rect
|
|
960
|
+
if (layer = this.get('layer')) {
|
|
961
|
+
f = SC.offset(layer); // x,y
|
|
962
|
+
if (pv) { f = pv.convertFrameFromView(f, null); }
|
|
963
|
+
|
|
964
|
+
/*
|
|
965
|
+
TODO Can probably have some better width/height values - CC
|
|
966
|
+
FIXME This will probably not work right with borders - PW
|
|
967
|
+
*/
|
|
968
|
+
f.width = layer.offsetWidth;
|
|
969
|
+
f.height = layer.offsetHeight;
|
|
970
|
+
return f;
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
// Unable to compute yet
|
|
974
|
+
if (this.get('hasLayout')) {
|
|
975
|
+
return null;
|
|
976
|
+
} else {
|
|
977
|
+
return { x: 0, y: 0, width: 0, height: 0 };
|
|
978
|
+
}
|
|
979
|
+
},
|
|
980
|
+
|
|
981
|
+
/**
|
|
982
|
+
The clipping frame returns the visible portion of the view, taking into
|
|
983
|
+
account the clippingFrame of the parent view. Keep in mind that
|
|
984
|
+
the clippingFrame is in the context of the view itself, not it's parent
|
|
985
|
+
view.
|
|
986
|
+
|
|
987
|
+
Normally this will be calculated based on the intersection of your own
|
|
988
|
+
clippingFrame and your parentView's clippingFrame.
|
|
989
|
+
|
|
990
|
+
@property {Rect}
|
|
991
|
+
*/
|
|
992
|
+
clippingFrame: function() {
|
|
993
|
+
var f = this.get('frame'),
|
|
994
|
+
ret = f,
|
|
995
|
+
pv, cf;
|
|
996
|
+
|
|
997
|
+
if (!f) return null;
|
|
998
|
+
pv = this.get('parentView');
|
|
999
|
+
if (pv) {
|
|
1000
|
+
cf = pv.get('clippingFrame');
|
|
1001
|
+
if (!cf) return f;
|
|
1002
|
+
ret = SC.intersectRects(cf, f);
|
|
1003
|
+
}
|
|
1004
|
+
ret.x -= f.x;
|
|
1005
|
+
ret.y -= f.y;
|
|
1006
|
+
|
|
1007
|
+
return ret;
|
|
1008
|
+
}.property('parentView', 'frame').cacheable(),
|
|
1009
|
+
|
|
1010
|
+
/** @private
|
|
1011
|
+
This method is invoked whenever the clippingFrame changes, notifying
|
|
1012
|
+
each child view that its clippingFrame has also changed.
|
|
1013
|
+
*/
|
|
1014
|
+
_sc_view_clippingFrameDidChange: function() {
|
|
1015
|
+
var cvs = this.get('childViews'), len = cvs.length, idx, cv ;
|
|
1016
|
+
for (idx=0; idx<len; ++idx) {
|
|
1017
|
+
cv = cvs[idx] ;
|
|
1018
|
+
|
|
1019
|
+
cv.notifyPropertyChange('clippingFrame') ;
|
|
1020
|
+
cv._sc_view_clippingFrameDidChange();
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
|
|
1024
|
+
/**
|
|
1025
|
+
Removes the child view from the parent view.
|
|
1026
|
+
|
|
1027
|
+
@param {SC.View} view
|
|
1028
|
+
@returns {SC.View} receiver
|
|
1029
|
+
*/
|
|
1030
|
+
removeChild: function(view) {
|
|
1031
|
+
// update parent node
|
|
1032
|
+
view.set('parentView', null) ;
|
|
1033
|
+
|
|
1034
|
+
// remove view from childViews array.
|
|
1035
|
+
var childViews = this.get('childViews'),
|
|
1036
|
+
idx = childViews.indexOf(view) ;
|
|
1037
|
+
if (idx>=0) { childViews.removeAt(idx); }
|
|
1038
|
+
|
|
1039
|
+
return this ;
|
|
1040
|
+
},
|
|
1041
|
+
|
|
1042
|
+
/**
|
|
1043
|
+
Removes all children from the parentView.
|
|
1044
|
+
|
|
1045
|
+
@returns {SC.View} receiver
|
|
1046
|
+
*/
|
|
1047
|
+
removeAllChildren: function() {
|
|
1048
|
+
var childViews = this.get('childViews'), view ;
|
|
1049
|
+
while (view = childViews.objectAt(childViews.get('length')-1)) {
|
|
1050
|
+
this.removeChild(view) ;
|
|
1051
|
+
}
|
|
1052
|
+
return this ;
|
|
1053
|
+
},
|
|
1054
|
+
|
|
1055
|
+
/**
|
|
1056
|
+
Removes the view from its parentView, if one is found. Otherwise
|
|
1057
|
+
does nothing.
|
|
1058
|
+
|
|
1059
|
+
@returns {SC.View} receiver
|
|
1060
|
+
*/
|
|
1061
|
+
removeFromParent: function() {
|
|
1062
|
+
var parent = this.get('parentView') ;
|
|
1063
|
+
if (parent) { parent.removeChild(this) ; }
|
|
1064
|
+
return this ;
|
|
1065
|
+
},
|
|
1066
|
+
|
|
1067
|
+
/**
|
|
1068
|
+
You must call this method on a view to destroy the view (and all of its
|
|
1069
|
+
child views). This will remove the view from any parent node, then make
|
|
1070
|
+
sure that the DOM element managed by the view can be released by the
|
|
1071
|
+
memory manager.
|
|
1072
|
+
*/
|
|
1073
|
+
destroy: function() {
|
|
1074
|
+
if (this.get('isDestroyed')) { return this; } // nothing to do
|
|
1075
|
+
|
|
1076
|
+
this._destroy(); // core destroy method
|
|
1077
|
+
|
|
1078
|
+
// remove from parent if found
|
|
1079
|
+
if (this.get('parentView')) { this.removeFromParent(); }
|
|
1080
|
+
|
|
1081
|
+
//Do generic destroy. It takes care of mixins and sets isDestroyed to YES.
|
|
1082
|
+
sc_super();
|
|
1083
|
+
return this; // done with cleanup
|
|
1084
|
+
},
|
|
1085
|
+
|
|
1086
|
+
_destroy: function() {
|
|
1087
|
+
if (this.get('isDestroyed')) { return this ; } // nothing to do
|
|
1088
|
+
|
|
1089
|
+
// destroy the layer -- this will avoid each child view destroying
|
|
1090
|
+
// the layer over and over again...
|
|
1091
|
+
this.destroyLayer() ;
|
|
1092
|
+
|
|
1093
|
+
// first destroy any children.
|
|
1094
|
+
var childViews = this.get('childViews'), len = childViews.length, idx ;
|
|
1095
|
+
if (len) {
|
|
1096
|
+
childViews = childViews.slice() ;
|
|
1097
|
+
for (idx=0; idx<len; ++idx) { childViews[idx].destroy() ; }
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
// next remove view from global hash
|
|
1101
|
+
delete SC.View.views[this.get('layerId')] ;
|
|
1102
|
+
delete this._CQ ;
|
|
1103
|
+
delete this.page ;
|
|
1104
|
+
|
|
1105
|
+
return this ;
|
|
1106
|
+
},
|
|
1107
|
+
|
|
1108
|
+
/**
|
|
1109
|
+
This method is called when your view is first created to setup any child
|
|
1110
|
+
views that are already defined on your class. If any are found, it will
|
|
1111
|
+
instantiate them for you.
|
|
1112
|
+
|
|
1113
|
+
The default implementation of this method simply steps through your
|
|
1114
|
+
childViews array, which is expects to either be empty or to contain View
|
|
1115
|
+
designs that can be instantiated
|
|
1116
|
+
|
|
1117
|
+
Alternatively, you can implement this method yourself in your own
|
|
1118
|
+
subclasses to look for views defined on specific properties and then build
|
|
1119
|
+
a childViews array yourself.
|
|
1120
|
+
|
|
1121
|
+
Note that when you implement this method yourself, you should never
|
|
1122
|
+
instantiate views directly. Instead, you should use
|
|
1123
|
+
this.createChildView() method instead. This method can be much faster in
|
|
1124
|
+
a production environment than creating views yourself.
|
|
1125
|
+
|
|
1126
|
+
@returns {SC.View} receiver
|
|
1127
|
+
*/
|
|
1128
|
+
createChildViews: function() {
|
|
1129
|
+
var childViews = this.get('childViews'),
|
|
1130
|
+
len = childViews.length,
|
|
1131
|
+
idx, key, views, view ;
|
|
1132
|
+
|
|
1133
|
+
this.beginPropertyChanges() ;
|
|
1134
|
+
|
|
1135
|
+
// swap the array
|
|
1136
|
+
for (idx=0; idx<len; ++idx) {
|
|
1137
|
+
if (key = (view = childViews[idx])) {
|
|
1138
|
+
|
|
1139
|
+
// is this is a key name, lookup view class
|
|
1140
|
+
if (typeof key === SC.T_STRING) {
|
|
1141
|
+
view = this[key];
|
|
1142
|
+
} else {
|
|
1143
|
+
key = null ;
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
if (!view) {
|
|
1147
|
+
SC.Logger.error ("No view with name "+key+" has been found in "+this.toString());
|
|
1148
|
+
// skip this one.
|
|
1149
|
+
continue;
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
// createChildView creates the view if necessary, but also sets
|
|
1153
|
+
// important properties, such as parentView
|
|
1154
|
+
view = this.createChildView(view) ;
|
|
1155
|
+
if (key) { this[key] = view ; } // save on key name if passed
|
|
1156
|
+
}
|
|
1157
|
+
childViews[idx] = view;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
this.endPropertyChanges() ;
|
|
1161
|
+
return this ;
|
|
1162
|
+
},
|
|
1163
|
+
|
|
1164
|
+
/**
|
|
1165
|
+
Instantiates a view to be added to the childViews array during view
|
|
1166
|
+
initialization. You generally will not call this method directly unless
|
|
1167
|
+
you are overriding createChildViews(). Note that this method will
|
|
1168
|
+
automatically configure the correct settings on the new view instance to
|
|
1169
|
+
act as a child of the parent.
|
|
1170
|
+
|
|
1171
|
+
@param {Class} viewClass
|
|
1172
|
+
@param {Hash} attrs optional attributes to add
|
|
1173
|
+
@returns {SC.View} new instance
|
|
1174
|
+
@test in createChildViews
|
|
1175
|
+
*/
|
|
1176
|
+
createChildView: function(view, attrs) {
|
|
1177
|
+
if (!view.isClass) {
|
|
1178
|
+
attrs = view;
|
|
1179
|
+
} else {
|
|
1180
|
+
// attrs should always exist...
|
|
1181
|
+
if (!attrs) { attrs = {} ; }
|
|
1182
|
+
// clone the hash that was given so we dont pollute it if it's being reused
|
|
1183
|
+
else { attrs = SC.clone(attrs); }
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
attrs.owner = attrs.parentView = this ;
|
|
1187
|
+
|
|
1188
|
+
// We need to set isVisibleInWindow before the init method is called on the view
|
|
1189
|
+
// The prototype check is a bit hackish and should be revisited - PDW
|
|
1190
|
+
if (view.isClass && view.prototype.hasVisibility) {
|
|
1191
|
+
attrs.isVisibleInWindow = this.get('isVisibleInWindow');
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
if (!attrs.page) { attrs.page = this.page ; }
|
|
1195
|
+
|
|
1196
|
+
// Now add this to the attributes and create.
|
|
1197
|
+
if (view.isClass) { view = view.create(attrs); }
|
|
1198
|
+
|
|
1199
|
+
return view ;
|
|
1200
|
+
},
|
|
1201
|
+
|
|
1202
|
+
/** walk like a duck */
|
|
1203
|
+
isView: YES,
|
|
1204
|
+
|
|
1205
|
+
/**
|
|
1206
|
+
Default method called when a selectstart event is triggered. This event is
|
|
1207
|
+
only supported by IE. Used in sproutcore to disable text selection and
|
|
1208
|
+
IE8 accelerators. The accelerators will be enabled only in
|
|
1209
|
+
text selectable views. In FF and Safari we use the css style 'allow-select'.
|
|
1210
|
+
|
|
1211
|
+
If you want to enable text selection in certain controls is recommended
|
|
1212
|
+
to override this function to always return YES , instead of setting
|
|
1213
|
+
isTextSelectable to true.
|
|
1214
|
+
|
|
1215
|
+
For example in textfield you dont want to enable textSelection on the text
|
|
1216
|
+
hint only on the actual text you are entering. You can achieve that by
|
|
1217
|
+
only overriding this method.
|
|
1218
|
+
|
|
1219
|
+
@param evt {SC.Event} the selectstart event
|
|
1220
|
+
@returns YES if selectable
|
|
1221
|
+
*/
|
|
1222
|
+
selectStart: function(evt) {
|
|
1223
|
+
return this.get('isTextSelectable');
|
|
1224
|
+
},
|
|
1225
|
+
|
|
1226
|
+
/**
|
|
1227
|
+
Used to block the contextMenu per view.
|
|
1228
|
+
|
|
1229
|
+
@param evt {SC.Event} the contextmenu event
|
|
1230
|
+
@returns YES if the contextmenu can show up
|
|
1231
|
+
*/
|
|
1232
|
+
contextMenu: function(evt) {
|
|
1233
|
+
if (this.get('isContextMenuEnabled')) { return YES; }
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
});
|
|
1237
|
+
|
|
1238
|
+
SC.CoreView.mixin(/** @scope SC.View.prototype */ {
|
|
1239
|
+
|
|
1240
|
+
/** @private walk like a duck -- used by SC.Page */
|
|
1241
|
+
isViewClass: YES,
|
|
1242
|
+
|
|
1243
|
+
/**
|
|
1244
|
+
This method works just like extend() except that it will also preserve
|
|
1245
|
+
the passed attributes in case you want to use a view builder later, if
|
|
1246
|
+
needed.
|
|
1247
|
+
|
|
1248
|
+
@param {Hash} attrs Attributes to add to view
|
|
1249
|
+
@returns {Class} SC.View subclass to create
|
|
1250
|
+
@function
|
|
1251
|
+
*/
|
|
1252
|
+
design: function() {
|
|
1253
|
+
if (this.isDesign) {
|
|
1254
|
+
//@ if (debug)
|
|
1255
|
+
SC.Logger.warn("SC.View#design called twice for %@.".fmt(this));
|
|
1256
|
+
//@ endif
|
|
1257
|
+
return this;
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
var ret = this.extend.apply(this, arguments);
|
|
1261
|
+
ret.isDesign = YES ;
|
|
1262
|
+
if (SC.ViewDesigner) {
|
|
1263
|
+
SC.ViewDesigner.didLoadDesign(ret, this, SC.A(arguments));
|
|
1264
|
+
}
|
|
1265
|
+
return ret ;
|
|
1266
|
+
},
|
|
1267
|
+
|
|
1268
|
+
extend: function() {
|
|
1269
|
+
var last = arguments[arguments.length - 1];
|
|
1270
|
+
|
|
1271
|
+
if (last && !SC.none(last.theme)) {
|
|
1272
|
+
last.themeName = last.theme;
|
|
1273
|
+
delete last.theme;
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
return SC.Object.extend.apply(this, arguments);
|
|
1277
|
+
},
|
|
1278
|
+
|
|
1279
|
+
/**
|
|
1280
|
+
Helper applies the layout to the prototype.
|
|
1281
|
+
*/
|
|
1282
|
+
layout: function(layout) {
|
|
1283
|
+
this.prototype.layout = layout ;
|
|
1284
|
+
return this ;
|
|
1285
|
+
},
|
|
1286
|
+
|
|
1287
|
+
/**
|
|
1288
|
+
Helper applies the classNames to the prototype
|
|
1289
|
+
*/
|
|
1290
|
+
classNames: function(sc) {
|
|
1291
|
+
sc = (this.prototype.classNames || []).concat(sc);
|
|
1292
|
+
this.prototype.classNames = sc;
|
|
1293
|
+
return this ;
|
|
1294
|
+
},
|
|
1295
|
+
|
|
1296
|
+
/**
|
|
1297
|
+
Help applies the tagName
|
|
1298
|
+
*/
|
|
1299
|
+
tagName: function(tg) {
|
|
1300
|
+
this.prototype.tagName = tg;
|
|
1301
|
+
return this ;
|
|
1302
|
+
},
|
|
1303
|
+
|
|
1304
|
+
/**
|
|
1305
|
+
Helper adds the childView
|
|
1306
|
+
*/
|
|
1307
|
+
childView: function(cv) {
|
|
1308
|
+
var childViews = this.prototype.childViews || [];
|
|
1309
|
+
if (childViews === this.superclass.prototype.childViews) {
|
|
1310
|
+
childViews = childViews.slice();
|
|
1311
|
+
}
|
|
1312
|
+
childViews.push(cv) ;
|
|
1313
|
+
this.prototype.childViews = childViews;
|
|
1314
|
+
return this ;
|
|
1315
|
+
},
|
|
1316
|
+
|
|
1317
|
+
/**
|
|
1318
|
+
Helper adds a binding to a design
|
|
1319
|
+
*/
|
|
1320
|
+
bind: function(keyName, path) {
|
|
1321
|
+
var p = this.prototype, s = this.superclass.prototype;
|
|
1322
|
+
var bindings = p._bindings ;
|
|
1323
|
+
if (!bindings || bindings === s._bindings) {
|
|
1324
|
+
bindings = p._bindings = (bindings || []).slice() ;
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1327
|
+
keyName = keyName + "Binding";
|
|
1328
|
+
p[keyName] = path ;
|
|
1329
|
+
bindings.push(keyName);
|
|
1330
|
+
|
|
1331
|
+
return this ;
|
|
1332
|
+
},
|
|
1333
|
+
|
|
1334
|
+
/**
|
|
1335
|
+
Helper sets a generic property on a design.
|
|
1336
|
+
*/
|
|
1337
|
+
prop: function(keyName, value) {
|
|
1338
|
+
this.prototype[keyName] = value;
|
|
1339
|
+
return this ;
|
|
1340
|
+
},
|
|
1341
|
+
|
|
1342
|
+
/**
|
|
1343
|
+
Used to construct a localization for a view. The default implementation
|
|
1344
|
+
will simply return the passed attributes.
|
|
1345
|
+
*/
|
|
1346
|
+
localization: function(attrs, rootElement) {
|
|
1347
|
+
// add rootElement
|
|
1348
|
+
if (rootElement) attrs.rootElement = SC.$(rootElement)[0];
|
|
1349
|
+
return attrs;
|
|
1350
|
+
},
|
|
1351
|
+
|
|
1352
|
+
/**
|
|
1353
|
+
Creates a view instance, first finding the DOM element you name and then
|
|
1354
|
+
using that as the root element. You should not use this method very
|
|
1355
|
+
often, but it is sometimes useful if you want to attach to already
|
|
1356
|
+
existing HTML.
|
|
1357
|
+
|
|
1358
|
+
@param {String|Element} element
|
|
1359
|
+
@param {Hash} attrs
|
|
1360
|
+
@returns {SC.View} instance
|
|
1361
|
+
*/
|
|
1362
|
+
viewFor: function(element, attrs) {
|
|
1363
|
+
var args = SC.$A(arguments); // prepare to edit
|
|
1364
|
+
if (SC.none(element)) {
|
|
1365
|
+
args.shift(); // remove if no element passed
|
|
1366
|
+
} else args[0] = { rootElement: SC.$(element)[0] } ;
|
|
1367
|
+
var ret = this.create.apply(this, arguments) ;
|
|
1368
|
+
args = args[0] = null;
|
|
1369
|
+
return ret ;
|
|
1370
|
+
},
|
|
1371
|
+
|
|
1372
|
+
/**
|
|
1373
|
+
Create a new view with the passed attributes hash. If you have the
|
|
1374
|
+
Designer module loaded, this will also create a peer designer if needed.
|
|
1375
|
+
*/
|
|
1376
|
+
create: function() {
|
|
1377
|
+
var last = arguments[arguments.length - 1];
|
|
1378
|
+
|
|
1379
|
+
if (last && last.theme) {
|
|
1380
|
+
last.themeName = last.theme;
|
|
1381
|
+
delete last.theme;
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
var C=this, ret = new C(arguments);
|
|
1385
|
+
if (SC.ViewDesigner) {
|
|
1386
|
+
SC.ViewDesigner.didCreateView(ret, SC.$A(arguments));
|
|
1387
|
+
}
|
|
1388
|
+
return ret ;
|
|
1389
|
+
},
|
|
1390
|
+
|
|
1391
|
+
/**
|
|
1392
|
+
Applies the passed localization hash to the component views. Call this
|
|
1393
|
+
method before you call create(). Returns the receiver. Typically you
|
|
1394
|
+
will do something like this:
|
|
1395
|
+
|
|
1396
|
+
view = SC.View.design({...}).loc(localizationHash).create();
|
|
1397
|
+
|
|
1398
|
+
@param {Hash} loc
|
|
1399
|
+
@param rootElement {String} optional rootElement with prepped HTML
|
|
1400
|
+
@returns {SC.View} receiver
|
|
1401
|
+
*/
|
|
1402
|
+
loc: function(loc) {
|
|
1403
|
+
var childLocs = loc.childViews;
|
|
1404
|
+
delete loc.childViews; // clear out child views before applying to attrs
|
|
1405
|
+
|
|
1406
|
+
this.applyLocalizedAttributes(loc) ;
|
|
1407
|
+
if (SC.ViewDesigner) {
|
|
1408
|
+
SC.ViewDesigner.didLoadLocalization(this, SC.$A(arguments));
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1411
|
+
// apply localization recursively to childViews
|
|
1412
|
+
var childViews = this.prototype.childViews, idx = childViews.length,
|
|
1413
|
+
viewClass;
|
|
1414
|
+
while(--idx>=0) {
|
|
1415
|
+
viewClass = childViews[idx];
|
|
1416
|
+
loc = childLocs[idx];
|
|
1417
|
+
if (loc && viewClass && typeof viewClass === SC.T_STRING) SC.String.loc(viewClass, loc);
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
return this; // done!
|
|
1421
|
+
},
|
|
1422
|
+
|
|
1423
|
+
/**
|
|
1424
|
+
Internal method actually updates the localizated attributes on the view
|
|
1425
|
+
class. This is overloaded in design mode to also save the attributes.
|
|
1426
|
+
*/
|
|
1427
|
+
applyLocalizedAttributes: function(loc) {
|
|
1428
|
+
SC.mixin(this.prototype, loc) ;
|
|
1429
|
+
},
|
|
1430
|
+
|
|
1431
|
+
views: {}
|
|
1432
|
+
|
|
1433
|
+
}) ;
|
|
1434
|
+
|
|
1435
|
+
// .......................................................
|
|
1436
|
+
// OUTLET BUILDER
|
|
1437
|
+
//
|
|
1438
|
+
|
|
1439
|
+
/**
|
|
1440
|
+
Generates a computed property that will look up the passed property path
|
|
1441
|
+
the first time you try to get the value. Use this whenever you want to
|
|
1442
|
+
define an outlet that points to another view or object. The root object
|
|
1443
|
+
used for the path will be the receiver.
|
|
1444
|
+
*/
|
|
1445
|
+
SC.outlet = function(path, root) {
|
|
1446
|
+
return function(key) {
|
|
1447
|
+
return (this[key] = SC.objectForPropertyPath(path, (root !== undefined) ? root : this)) ;
|
|
1448
|
+
}.property();
|
|
1449
|
+
};
|
|
1450
|
+
|
|
1451
|
+
/** @private on unload clear cached divs. */
|
|
1452
|
+
SC.CoreView.unload = function() {
|
|
1453
|
+
// delete view items this way to ensure the views are cleared. The hash
|
|
1454
|
+
// itself may be owned by multiple view subclasses.
|
|
1455
|
+
var views = SC.View.views;
|
|
1456
|
+
if (views) {
|
|
1457
|
+
for(var key in views) {
|
|
1458
|
+
if (!views.hasOwnProperty(key)) continue ;
|
|
1459
|
+
delete views[key];
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
} ;
|
|
1463
|
+
|
|
1464
|
+
/**
|
|
1465
|
+
@class
|
|
1466
|
+
|
|
1467
|
+
Base class for managing a view. Views provide two functions:
|
|
1468
|
+
|
|
1469
|
+
1. They translate state and events into drawing instructions for the
|
|
1470
|
+
web browser and
|
|
1471
|
+
|
|
1472
|
+
2. They act as first responders for incoming keyboard, mouse, and
|
|
1473
|
+
touch events.
|
|
1474
|
+
|
|
1475
|
+
h2. View Initialization
|
|
1476
|
+
|
|
1477
|
+
When a view is setup, there are several methods you can override that
|
|
1478
|
+
will be called at different times depending on how your view is created.
|
|
1479
|
+
Here is a guide to which method you want to override and when:
|
|
1480
|
+
|
|
1481
|
+
- *init:* override this method for any general object setup (such as
|
|
1482
|
+
observers, starting timers and animations, etc) that you need to happen
|
|
1483
|
+
everytime the view is created, regardless of whether or not its layer
|
|
1484
|
+
exists yet.
|
|
1485
|
+
|
|
1486
|
+
- *render:* override this method to generate or update your HTML to reflect
|
|
1487
|
+
the current state of your view. This method is called both when your view
|
|
1488
|
+
is first created and later anytime it needs to be updated.
|
|
1489
|
+
|
|
1490
|
+
- *didCreateLayer:* the render() method is used to generate new HTML.
|
|
1491
|
+
Override this method to perform any additional setup on the DOM you might
|
|
1492
|
+
need to do after creating the view. For example, if you need to listen
|
|
1493
|
+
for events.
|
|
1494
|
+
|
|
1495
|
+
- *willDestroyLayer:* if you implement didCreateLayer() to setup event
|
|
1496
|
+
listeners, you should implement this method as well to remove the same
|
|
1497
|
+
just before the DOM for your view is destroyed.
|
|
1498
|
+
|
|
1499
|
+
- *updateLayer:* Normally, when a view needs to update its content, it will
|
|
1500
|
+
re-render the view using the render() method. If you would like to
|
|
1501
|
+
override this behavior with your own custom updating code, you can
|
|
1502
|
+
replace updateLayer() with your own implementation instead.
|
|
1503
|
+
|
|
1504
|
+
- *didAppendToDocument:* in theory all DOM setup could be done
|
|
1505
|
+
in didCreateLayer() as you already have a DOM element instantiated.
|
|
1506
|
+
However there is cases where the element has to be first appended to the
|
|
1507
|
+
Document because there is either a bug on the browser or you are using
|
|
1508
|
+
plugins which objects are not instantiated until you actually append the
|
|
1509
|
+
element to the DOM. This will allow you to do things like registering
|
|
1510
|
+
DOM events on flash or quicktime objects.
|
|
1511
|
+
|
|
1512
|
+
@extends SC.Responder
|
|
1513
|
+
@extends SC.DelegateSupport
|
|
1514
|
+
@since SproutCore 1.0
|
|
1515
|
+
|
|
1516
|
+
*/
|
|
1517
|
+
SC.View = SC.CoreView.extend(/** @scope SC.View.prototype */{
|
|
1518
|
+
classNames: ['sc-view']
|
|
1519
|
+
});
|
|
1520
|
+
|
|
1521
|
+
//unload views for IE, trying to collect memory.
|
|
1522
|
+
if(SC.browser.msie) SC.Event.add(window, 'unload', SC.View, SC.View.unload) ;
|
|
1523
|
+
|
|
1524
|
+
|