sproutcore 1.5.0.pre.5 → 1.5.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +20 -0
- data/VERSION.yml +1 -1
- data/lib/buildtasks/manifest.rake +171 -78
- data/lib/frameworks/sproutcore/Buildfile +7 -6
- data/lib/frameworks/sproutcore/CHANGELOG.md +56 -0
- data/lib/frameworks/sproutcore/apps/docs/core.js +1 -1
- data/lib/frameworks/sproutcore/apps/docs/english.lproj/main_page.js +1 -1
- data/lib/frameworks/sproutcore/apps/docs/english.lproj/strings.js +1 -1
- data/lib/frameworks/sproutcore/apps/docs/main.js +1 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/dialogs.js +3 -3
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/alert.js +39 -0
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +1 -1
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +19 -2
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +1 -1
- data/lib/frameworks/sproutcore/apps/test_controls/controllers/split.js +74 -0
- data/lib/frameworks/sproutcore/apps/test_controls/core.js +1 -1
- data/lib/frameworks/sproutcore/apps/test_controls/main.js +1 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +11 -7
- data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +1 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +7 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/panels_page.js +62 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/split_page.js +141 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +3 -2
- data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +28 -4
- data/lib/frameworks/sproutcore/apps/test_controls/theme.js +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/core.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +1 -1
- 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/design/{SproutCore Datastore Design.graffle → 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 Design Template.graffle → Sproutcore_Design_Template.graffle}/image8.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/QuickLook/Preview.pdf +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/QuickLook/Thumbnail.tiff +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/data.plist +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image10.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image11.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image13.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image15.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image16.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image17.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image18.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image19.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image22.tiff +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image23.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image24.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image25.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image30.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image31.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image8.png +0 -0
- data/lib/frameworks/sproutcore/design/{TestRunner Design.graffle → TestRunner_Design.gaffle}/image9.png +0 -0
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +58 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +6 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/string.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/{views/template → mixins/template_helpers}/text_field_support.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +25 -38
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/observable_protocol.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/core.css +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/resources/view.css +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/bindable_span.js +164 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +45 -17
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/json.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/page.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +24 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +48 -22
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +34 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +8 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +84 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/enum_case.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/null_case.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/single_case.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/empty_case.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/multiple_case.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_case.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_enumerable_case.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/responder_context.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/{views/template → mixins/template_helpers}/checkbox_support.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/{views/template → mixins/template_helpers}/text_field_support.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/panes/template.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/builder.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/core_query/within.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/json.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/ready/done.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/begin.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/element.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/get.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_attr.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_basic.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/init.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/join.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/push_text.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/tag.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeKeyPane.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMainPane.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMenuPane.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/root_responder.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/targetForAction.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/add.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/copy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/indexSetForSource.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/isEqual.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +8 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/theme.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invalidate.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invokeLater.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/isPaused.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/performAction.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/schedule.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/normalizeURL.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +23 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/rect.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/firstResponder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/keyPane.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/{template_view → template}/collection.js +77 -11
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/core.js +160 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/{template_view → template}/handlebars.js +279 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertLayouts.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +8 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createLayer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroyLayer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/findLayerInParentLayer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/init.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisible.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisibleInWindow.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/parentViewDidChange.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/removeChild.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render_delegate_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/replaceChild.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/theme.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +58 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +179 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +92 -65
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/base.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +37 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +67 -29
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +6 -1
- 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 +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +1 -1
- 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 +23 -12
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +211 -90
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +121 -91
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +15 -17
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +50 -14
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +35 -20
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +13 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +56 -73
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +35 -22
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +138 -62
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/cascade.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/cyclical_relationship.js +1 -1
- 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/nested_record.js +5 -1
- 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 +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +1 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/expandedRecordTypes.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_comparisons.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_query_extensions.js +1 -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 +49 -12
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +1 -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 +1 -1
- 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 +1 -1
- 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/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 +1 -1
- 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/unloadRecords.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/resources/strings.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/system/datetime.js +48 -7
- data/lib/frameworks/sproutcore/frameworks/datetime/tests/system/datetime.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/designer/coders/design.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/coders/object.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/controllers.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/design.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/designs.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/controllers/page_files.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/designer/core.js +6 -4
- data/lib/frameworks/sproutcore/frameworks/designer/css/css_rule.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/designer/css/css_style.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/designer/css/css_style_sheet.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/designer/designers/button.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/designers/label.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/designers/object_designer.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/designers/tab.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/designers/text_field.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/designers/view_designer.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/ext/binding.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/designer/ext/object.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/ext/page.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/ext/view.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/mixins/button.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/designer/mixins/snap_lines.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/designer/tests/designers/view_designer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/debug/drag.js +6 -5
- 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/menu_item_view.css +1 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +293 -203
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +35 -107
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +10 -36
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +44 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +70 -63
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +29 -31
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +12 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/helpers/slicing.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +46 -33
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +16 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +56 -143
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +17 -28
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +8 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +5 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +38 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/source_list.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +3 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +17 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +19 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +215 -53
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +33 -8
- 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 +4 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +91 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +2 -2
- 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 +1 -1
- 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/{foundation/tests/mixins → desktop/tests/views}/button/content.js +9 -15
- data/lib/frameworks/sproutcore/frameworks/{foundation/tests/mixins → desktop/tests/views}/button/displayProperties.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/{foundation/tests/mixins → desktop/tests/views}/button/keyEquivalents.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +4 -7
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +9 -11
- 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 +0 -1
- 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 +1 -1
- 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 +37 -40
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +10 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scene_view/databind.js +111 -0
- 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 +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +1 -47
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +16 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +69 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/method.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +1 -1
- 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 +329 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +4 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +1 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +15 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +76 -75
- data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation_bar.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +18 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +13 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +20 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +10 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +15 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +11 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/views/separator.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +10 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +11 -10
- data/lib/frameworks/sproutcore/frameworks/desktop/views/thumb.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +35 -23
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +83 -9
- 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 +66 -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/mixins/edit_mode.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/forms/mixins/emptiness.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/forms/renderer_delegates/form.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/forms/renderer_delegates/form_row.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_checkbox_field.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_field.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_label.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_radio_field.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_row.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_text_field.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/forms/views/form_row.js +5 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +39 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/delegates/inline_text_field.js +92 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/pinch.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/swipe.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/gestures/tap.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +239 -126
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +4 -350
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +217 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +17 -186
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +3 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +345 -287
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +249 -59
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +197 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +177 -114
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +404 -340
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/tree_item_content.js +47 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +205 -200
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/container.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +16 -32
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +375 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/cookie.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/core_query.js +8 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/gesture.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/image_queue.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/math.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +34 -26
- data/lib/frameworks/sproutcore/frameworks/foundation/system/request.js +44 -29
- data/lib/frameworks/sproutcore/frameworks/foundation/system/response.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/routes.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/staticqueue.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/time.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +28 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/range.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_display.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/{control → content_value_support}/content.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +1 -1
- 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 +10 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +6 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/string.js +6 -0
- 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 +4 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/math.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +6 -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 +6 -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 +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +7 -15
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/email.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/positive_integer.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +47 -33
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +28 -4
- data/lib/frameworks/sproutcore/frameworks/handlebars/extensions.js +88 -2
- data/lib/frameworks/sproutcore/frameworks/handlebars/extensions/bind.js +100 -46
- data/lib/frameworks/sproutcore/frameworks/handlebars/extensions/collection.js +21 -46
- data/lib/frameworks/sproutcore/frameworks/handlebars/extensions/view.js +28 -49
- data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +62 -28
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +28 -18
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/tests/set_class.js +40 -0
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/media_slider.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/mini/license.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +166 -137
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +1 -1
- 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 +1 -1
- 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/license.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +50 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +10 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +437 -120
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +24 -25
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +916 -825
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +9 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +190 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +88 -95
- data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +13 -11
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +40 -30
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +40 -38
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +100 -98
- data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +5 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +11 -12
- data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +6 -0
- 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 +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/inspect.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +6 -0
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/comparable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/{enumerable.js → enumerable/enumerable.js} +1 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable_observers.js +92 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +32 -19
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +138 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observersForKey.js +36 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +33 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +61 -7
- 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/logger.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/concatenated_properties.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +19 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +1 -1
- 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 +6 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +23 -4
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +661 -54
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +990 -324
- 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_event_handling.js → advanced/without_concurrent_states.js} +1 -5
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{with_concurrent_states/send_event.js → event_handling/basic/with_concurrent_states.js} +0 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{without_concurrent_states/send_event.js → event_handling/basic/without_concurrent_states.js} +0 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{without_concurrent_states/default_responder.js → event_handling/responder/pane.js} +1 -2
- 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 +0 -4
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{namespace/access_substates.js → state/namespacing.js} +0 -4
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/plugin/mixin.js +68 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{without_concurrent_states/state_plugin.js → state/plugin/nesting.js} +1 -5
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/state_observes.js +235 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{async.js → state_transitioning/async/core.js} +0 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{with_concurrent_states/goto_state_async.js → state_transitioning/async/with_concurrent_states.js} +0 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{without_concurrent_states/goto_state_async.js → state_transitioning/async/without_concurrent_states.js} +4 -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/{with_concurrent_states/goto_history_state.js → state_transitioning/history_state/standard/with_concurrent_states.js} +1 -1
- 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/{without_concurrent_states/goto_history_state.js → state_transitioning/history_state/standard/without_concurrent_states/core.js} +0 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{with_concurrent_states/goto_state_advanced.js → state_transitioning/standard/with_concurrent_states/advanced.js} +37 -32
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{with_concurrent_states/goto_state_basic.js → state_transitioning/standard/with_concurrent_states/basic.js} +17 -25
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{with_concurrent_states/goto_state_intermediate.js → state_transitioning/standard/with_concurrent_states/intermediate.js} +22 -21
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/context.js +144 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{without_concurrent_states/goto_state.js → state_transitioning/standard/without_concurrent_states/core.js} +49 -24
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{without_concurrent_states/transient.js → state_transitioning/transient/without_concurrent_states.js} +1 -1
- 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 +1 -1
- data/lib/frameworks/sproutcore/frameworks/table/views/table_cell.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/table/views/table_header.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/core.js +1 -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 +7 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +1 -1
- 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/license.js +2 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +10 -6
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/button.css +5 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.js +3 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +1 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio.css +0 -6
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +2 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +29 -3
- data/lib/frameworks/sproutcore/themes/ace/theme.js +17 -1
- data/lib/frameworks/sproutcore/themes/empty_theme/theme.js +1 -1
- 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/{standard_theme → legacy_theme}/english.lproj/pane.css +1 -1
- 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/{standard_theme → legacy_theme}/english.lproj/segmented.css +0 -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/sproutcore/builders.rb +0 -1
- data/lib/sproutcore/builders/base.rb +3 -1
- data/lib/sproutcore/builders/chance_file.rb +29 -10
- data/lib/sproutcore/builders/combine.rb +2 -4
- data/lib/sproutcore/builders/javascript.rb +14 -1
- data/lib/sproutcore/builders/minify.rb +3 -2
- data/lib/sproutcore/builders/module.rb +2 -0
- data/lib/sproutcore/helpers/minifier.rb +91 -37
- data/lib/sproutcore/helpers/static_helper.rb +26 -10
- data/lib/sproutcore/models/target.rb +36 -6
- data/lib/sproutcore/tools.rb +26 -20
- data/lib/sproutcore/tools/build.rb +2 -1
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_2x_spec.rb +100 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_spec.rb +17 -13
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +3 -3
- 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 +32 -30
- data/spec/fixtures/builder_tests/apps/chance_test/resources/force@2x.png +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/resources/force@2x.png +0 -0
- data/spec/lib/builders/chance_file_spec.rb +11 -30
- data/sproutcore.gemspec +2 -2
- data/vendor/chance/bin/chance +20 -46
- data/vendor/chance/lib/chance.rb +20 -3
- data/vendor/chance/lib/chance/instance.rb +154 -76
- 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 +24 -20
- data/vendor/chance/lib/tester/test.rb +108 -0
- data/vendor/chance/lib/tester/test_runner.rb +27 -0
- data/vendor/chance/tests/parser/basic/input/test.css +4 -0
- data/vendor/chance/tests/parser/basic/output/test.parsed.css +5 -0
- metadata +255 -195
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/core.js +0 -85
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/checkbox_support.js +0 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/collection.js +0 -106
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/polymorphic_single_attribute.js +0 -183
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphic/single.js +0 -124
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/ui.js +0 -69
- data/lib/frameworks/sproutcore/themes/ace/resources/button/button.js +0 -75
- data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.js +0 -20
- data/lib/frameworks/sproutcore/themes/ace/resources/progress/progress.js +0 -78
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.js +0 -56
- data/lib/frameworks/sproutcore/themes/ace/resources/well/well.js +0 -17
- data/lib/sproutcore/builders/chance.rb +0 -64
- data/spec/lib/builders/chance_spec.rb +0 -81
- data/vendor/chance/lib/chance/imager.rb +0 -13
- data/vendor/chance/lib/chance/imagers/data_url.rb +0 -117
- data/vendor/chance/lib/chance/importer.rb +0 -64
- data/vendor/chance/lib/chance/sass_extensions.rb +0 -24
- data/vendor/chance/lib/chance/slicing.rb +0 -166
@@ -1,139 +1,202 @@
|
|
1
1
|
// ==========================================================================
|
2
2
|
// Project: SproutCore - JavaScript Application Framework
|
3
3
|
// Copyright: ©2006-2011 Strobe Inc. and contributors.
|
4
|
-
// Portions ©2008-
|
4
|
+
// Portions ©2008-2011 Apple Inc. All rights reserved.
|
5
5
|
// License: Licensed under MIT license (see license.js)
|
6
6
|
// ==========================================================================
|
7
7
|
|
8
8
|
/**
|
9
|
-
|
9
|
+
@protocol
|
10
|
+
|
11
|
+
This delegate is consulted by view implementing SC.InlineEditable and
|
12
|
+
SC.InlineEditor and controls the lifecycle of the editor as well as begin
|
13
|
+
notified of events in the editing process.
|
10
14
|
|
11
15
|
By default it edits an SC.LabelView using an SC.InlineTextFieldView.
|
16
|
+
|
17
|
+
All methods will be attempted to be called on the inlineEditorDelegate of the
|
18
|
+
inlineEditor or inlineEditable first and then the target view if it didn't exist
|
19
|
+
on the delegate. This allows you to implement default delegate handlers on your
|
20
|
+
editable view.
|
12
21
|
|
13
22
|
@since SproutCore 1.0
|
14
23
|
*/
|
15
24
|
SC.InlineEditorDelegate = {
|
16
|
-
|
17
|
-
|
25
|
+
/** REQUIRED FUNCTIONS **/
|
26
|
+
/*
|
27
|
+
* @method
|
28
|
+
*
|
29
|
+
* Acquires an editor for the view. This may simply create one and return it,
|
30
|
+
* or you may implement more complex lifecycle management like pooling of
|
31
|
+
* editors.
|
32
|
+
*
|
33
|
+
* May return null if for some reason an editor could not be required.
|
34
|
+
*
|
35
|
+
* @params {SC.InlineEditable} the view that is begin edited
|
36
|
+
* @returns {SC.InlineEditor} an editor for the view
|
37
|
+
*/
|
38
|
+
acquireEditor:function(editable) {},
|
18
39
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
40
|
+
/*
|
41
|
+
* @method
|
42
|
+
*
|
43
|
+
* Releases an editor. This may simply remove it from its parent and dispose of
|
44
|
+
* it, or you may implement more complex lifecycle management like pooling of
|
45
|
+
* editors.
|
46
|
+
*
|
47
|
+
* @params {SC.InlineEditor} the editor being released
|
48
|
+
* @returns {Boolean} YES if it was successfully released
|
49
|
+
*/
|
50
|
+
releaseEditor:function(editor) {},
|
23
51
|
|
24
|
-
|
25
|
-
|
26
|
-
|
52
|
+
/** OPTIONAL FUNCTIONS **/
|
53
|
+
/*
|
54
|
+
* @method
|
55
|
+
*
|
56
|
+
* Determines if the view should be allowed to begin editing and returns YES if
|
57
|
+
* so. Isn't passed the editor because it hasn't been created yet. If this
|
58
|
+
* method is not defined the editor will assume it is always allowed to begin
|
59
|
+
* editing.
|
60
|
+
*
|
61
|
+
* @params {SC.InlineEditable} the view that is attempting to begin editing
|
62
|
+
* @params {Object} the current value of the view
|
63
|
+
* @returns {Boolean} YES if the view is allowed to edit
|
27
64
|
*/
|
28
|
-
|
29
|
-
|
30
|
-
inlineEditorClassName: null,
|
65
|
+
inlineEditorShouldBeginEditing: function(editable, value) {},
|
31
66
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
67
|
+
/*
|
68
|
+
* @method
|
69
|
+
*
|
70
|
+
* Notifies the delegate that the view was allowed to begin editing and the
|
71
|
+
* editor has been acquired, but hasn't actually done any setup. Most views will
|
72
|
+
* set their current value as the starting value of the editor here, and
|
73
|
+
* depending on the editor other configuration options may be available.
|
74
|
+
*
|
75
|
+
* Since the editor's value hasn't been configured with, the value passed here will be
|
76
|
+
* the default value of the editor.
|
77
|
+
*
|
78
|
+
* @params {SC.InlineEditable} the view being edited
|
79
|
+
* @params {SC.InlineEditor} the editor for the view
|
80
|
+
* @params {Object} the value the editor will start with
|
37
81
|
*/
|
38
|
-
|
82
|
+
inlineEditorWillBeginEditing:function(editor, value, editable) {},
|
39
83
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
84
|
+
/*
|
85
|
+
* @method
|
86
|
+
*
|
87
|
+
* Notifies the delegate that the editor has finished setting up itself and is
|
88
|
+
* now editing.
|
89
|
+
*
|
90
|
+
* @params {SC.InlineEditable} the view being edited
|
91
|
+
* @params {SC.InlineEditor} the editor for the view
|
92
|
+
* @params {Object} the value the editor started with
|
46
93
|
*/
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
view.inlineEditorWillBeginEditing();
|
60
|
-
|
61
|
-
exampleEditor.beginEditing({
|
62
|
-
pane: view.get('pane'),
|
63
|
-
frame: f,
|
64
|
-
layout: view.get('layout'),
|
65
|
-
exampleInlineTextFieldView: exampleEditor,
|
66
|
-
delegate: this,
|
67
|
-
inlineEditorClassName: this.get('inlineEditorClassName'),
|
68
|
-
exampleElement: el,
|
69
|
-
value: startingValue,
|
70
|
-
multiline: this.get('isInlineEditorMultiline'),
|
71
|
-
isCollection: NO
|
72
|
-
});
|
73
|
-
|
74
|
-
exampleEditor.editor._target = view;
|
75
|
-
},
|
76
|
-
|
77
|
-
/**
|
78
|
-
The view the editor view should attach itself to as child. For example if you are editing a row of a formview inside a scrollview, you should attach to the scrollview's containerview or the formview's div, not the label itself. This way you will scroll with the target view but also be above it so editors can reuse views.
|
79
|
-
|
80
|
-
@param {SC.View} the view attempting to begin editing
|
81
|
-
@returns {SC.View} the view that the editor should be a child of
|
94
|
+
inlineEditorDidBeginEditing:function(editor, value, editable) {},
|
95
|
+
|
96
|
+
/*
|
97
|
+
* @method
|
98
|
+
*
|
99
|
+
* Determines if the editor is allowed to end editing and store its value back
|
100
|
+
* to the view being edited. If this method is not defined the editor will
|
101
|
+
* assume it is always allowed to commit.
|
102
|
+
*
|
103
|
+
* @params {SC.InlineEditable} the view being edited
|
104
|
+
* @params {SC.InlineEditor} the editor for the view
|
105
|
+
* @params {Object} the value the editor is attempting to commit
|
82
106
|
*/
|
83
|
-
|
84
|
-
return view.get('parentView');
|
85
|
-
},
|
107
|
+
inlineEditorShouldCommitEditing:function(editor, value, editable) {},
|
86
108
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
109
|
+
/*
|
110
|
+
* @method
|
111
|
+
*
|
112
|
+
* Notifies the delegate that the editor was allowed to commit and is going to
|
113
|
+
* commit but hasn't actually performed any cleanup yet.
|
114
|
+
*
|
115
|
+
* @params {SC.InlineEditable} the view being edited
|
116
|
+
* @params {SC.InlineEditor} the editor for the view
|
117
|
+
* @params {Object} the value the editor ended with
|
93
118
|
*/
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
@returns {Boolean} YES if the editor was able to end
|
119
|
+
inlineEditorWillCommitEditing:function(editor, value, editable) {},
|
120
|
+
|
121
|
+
/*
|
122
|
+
* @method
|
123
|
+
*
|
124
|
+
* Notifies the delegate that the editor was allowed to commit and finished
|
125
|
+
* performing any cleanup necessary. This is where you should save the final
|
126
|
+
* value back to your view after performing any necessary transforms to it.
|
127
|
+
*
|
128
|
+
* @params {SC.InlineEditable} the view being edited
|
129
|
+
* @params {SC.InlineEditor} the editor for the view
|
130
|
+
* @params {Object} the value the editor ended with
|
107
131
|
*/
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
},
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
132
|
+
inlineEditorDidCommitEditing:function(editor, value, editable) {},
|
133
|
+
|
134
|
+
/*
|
135
|
+
* @method
|
136
|
+
*
|
137
|
+
* Determines if the editor is allowed to discard its current value and end
|
138
|
+
* editing. If this method is undefined the editor will assume it is always
|
139
|
+
* allowed to discard.
|
140
|
+
*
|
141
|
+
* @params {SC.InlineEditable} the view being edited
|
142
|
+
* @params {SC.InlineEditor} the editor for the view
|
143
|
+
*/
|
144
|
+
inlineEditorShouldDiscardEditing:function(editor, editable) {},
|
145
|
+
|
146
|
+
/*
|
147
|
+
* @method
|
148
|
+
*
|
149
|
+
* Notifies the delegate that the view was allowed to discard editing but
|
150
|
+
* hasn't performed any cleanup yet.
|
151
|
+
*
|
152
|
+
* @params {SC.InlineEditable} the view being edited
|
153
|
+
* @params {SC.InlineEditor} the editor for the view
|
154
|
+
*/
|
155
|
+
inlineEditorWillDiscardEditing:function(editor, editable) {},
|
156
|
+
|
157
|
+
/*
|
158
|
+
* @method
|
159
|
+
*
|
160
|
+
* Notifies the delegate that the editor has finished cleaning up after
|
161
|
+
* discarding editing.
|
162
|
+
*
|
163
|
+
* @params {SC.InlineEditable} the view being edited
|
164
|
+
* @params {SC.InlineEditor} the editor for the view
|
165
|
+
*/
|
166
|
+
inlineEditorDidDiscardEditing:function(editor, editable) {},
|
167
|
+
|
168
|
+
/** BACKWARDS COMPATIBILITY **/
|
169
|
+
/*
|
170
|
+
* @method
|
171
|
+
*
|
172
|
+
* Notifies the delegate that the editor will end editing but hasn't cleaned up
|
173
|
+
* yet. This can be caused by both commit or discard. If it was a discard, the
|
174
|
+
* value will be the same as the current value of the editable view. Otherwise,
|
175
|
+
* it was a commit and the value will be the value of the editor.
|
176
|
+
*
|
177
|
+
* This method is for backwards compatibility and should not be used.
|
178
|
+
*
|
179
|
+
* @params {SC.InlineEditable} the view being edited
|
180
|
+
* @params {SC.InlineEditor} the editor for the view
|
181
|
+
* @params {Object} the final value of the edit
|
182
|
+
*/
|
183
|
+
inlineEditorWillEndEditing: function(editor, value, editable) {},
|
184
|
+
|
185
|
+
/*
|
186
|
+
* @method
|
187
|
+
*
|
188
|
+
* Notifies the delegate that the editor has cleaned up after editing. This can
|
189
|
+
* be caused by both commit or discard. If it was a discard, the value will be
|
190
|
+
* the same as the current value of the editable view. Otherwise, it was a
|
191
|
+
* commit and the value will be the value of the editor.
|
192
|
+
|
193
|
+
*
|
194
|
+
* This method is for backwards compatibility and should not be used.
|
195
|
+
*
|
196
|
+
* @params {SC.InlineEditable} the view being edited
|
197
|
+
* @params {SC.InlineEditor} the editor for the view
|
198
|
+
* @params {Object} the final value of the edit
|
199
|
+
*/
|
200
|
+
inlineEditorDidEndEditing: function(editor, value, editable) {}
|
139
201
|
};
|
202
|
+
|
@@ -1,10 +1,13 @@
|
|
1
|
-
//
|
2
|
-
// SproutCore
|
3
|
-
//
|
4
|
-
//
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2011 Strobe Inc. and contributors.
|
4
|
+
// ©2008-2011 Apple Inc. All rights reserved.
|
5
|
+
// License: Licensed under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
5
7
|
|
6
8
|
sc_require('views/text_field') ;
|
7
9
|
sc_require('system/utils/misc') ;
|
10
|
+
sc_require('delegates/inline_text_field');
|
8
11
|
|
9
12
|
/**
|
10
13
|
@class
|
@@ -19,55 +22,63 @@ sc_require('system/utils/misc') ;
|
|
19
22
|
|
20
23
|
h2. Using the Inline Editor in Your Own Views
|
21
24
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
+
To use the inlineEditor on a custom view you should mixin SC.InlineEditable on
|
26
|
+
it. SC.InlineTextFieldView is the default editor so you do not need to do any
|
27
|
+
other setup. The class methods beginEditing, commitEditing, and discardEditing
|
28
|
+
still exist for backwards compatibility but should not be used on new views.
|
29
|
+
|
30
|
+
{{{
|
31
|
+
MyProject.MyView = SC.View.extend(SC.InlineEditable, {
|
32
|
+
});
|
33
|
+
}}}
|
25
34
|
|
26
35
|
h3. Starting the Editor
|
27
36
|
|
28
37
|
The inline editor works by positioning itself over the top of your view
|
29
|
-
with the same offset, width, and font information.
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
the target view you want the editor to position itself on top of:
|
34
|
-
|
38
|
+
with the same offset, width, and font information.
|
39
|
+
|
40
|
+
To start it simply call beginEditing on your view.
|
41
|
+
|
35
42
|
{{{
|
36
|
-
|
37
|
-
target: view, validator: validator
|
38
|
-
}) ;
|
43
|
+
myView.beginEditing();
|
39
44
|
}}}
|
45
|
+
|
46
|
+
By default, if the inline editor is currently in use elsewhere, it will automatically
|
47
|
+
close itself over there and begin editing for your view instead. This behavior
|
48
|
+
is defined by the inlineEditorDelegate of your view, and can be changed by using
|
49
|
+
one other than the default.
|
40
50
|
|
41
|
-
|
42
|
-
editor behavior, including:
|
51
|
+
h2. Customizing the editor
|
43
52
|
|
44
|
-
|
45
|
-
|
53
|
+
The editor has several parameters that can be used to customize it to your
|
54
|
+
needs. These options should be set on the editor passed to your delegate's (or
|
55
|
+
view's) inlineEditorWillBeginEditing method:
|
56
|
+
|
57
|
+
- *exampleFrame* The editors initial frame in viewport coordinates.
|
46
58
|
- *value* Initial value of the edit field.
|
47
59
|
- *exampleElement* A DOM element to use when copying styles.
|
48
60
|
- *multiline* If YES then the hitting return will add to the value instead of exiting the inline editor.
|
49
|
-
- *selectedRange* The range of text that should be selected. If omitted, then the insertion point will be placed at the end of the value.
|
50
61
|
- *commitOnBlur* If YES then blurring will commit the value, otherwise it will discard the current value. Defaults to YES.
|
51
62
|
- *validator* Validator to be attached to the field.
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
protocol.
|
63
|
+
|
64
|
+
For backwards compatibility, calling the class method beginEditing with an
|
65
|
+
options hash will translate the values in the hash to the correct settings on
|
66
|
+
the editor.
|
57
67
|
|
58
68
|
h2. Committing or Discarding Changes
|
59
69
|
|
60
70
|
Normally the editor will automatically commit or discard its changes
|
61
|
-
whenever the user exits the edit mode
|
62
|
-
|
71
|
+
whenever the user exits the edit mode by pressing enter, escape, or clicking
|
72
|
+
elsewhere on the page. If you need to force the editor to end editing, you can
|
73
|
+
do so by calling commitEditing() or discardEditing():
|
63
74
|
|
64
75
|
{{{
|
65
|
-
|
66
|
-
|
76
|
+
myView.commitEditing();
|
77
|
+
myView.discardEditing();
|
67
78
|
}}}
|
68
79
|
|
69
80
|
Both methods will try to end the editing context and will call the
|
70
|
-
relevant delegate methods on the
|
81
|
+
relevant delegate methods on the inlineEditorDelegate set on your view.
|
71
82
|
|
72
83
|
Note that it is possible an editor may not be able to commit editing
|
73
84
|
changes because either the delegate disallowed it or because its validator
|
@@ -79,200 +90,260 @@ sc_require('system/utils/misc') ;
|
|
79
90
|
@extends SC.TextFieldView
|
80
91
|
@since SproutCore 1.0
|
81
92
|
*/
|
82
|
-
SC.InlineTextFieldView = SC.TextFieldView.extend(
|
93
|
+
SC.InlineTextFieldView = SC.TextFieldView.extend(SC.InlineEditor,
|
83
94
|
/** @scope SC.InlineTextFieldView.prototype */ {
|
84
|
-
|
95
|
+
classNames: ['inline-editor'],
|
85
96
|
/**
|
86
97
|
Over-write magic number from SC.TextFieldView
|
87
98
|
*/
|
88
99
|
_topOffsetForFirefoxCursorFix: 0,
|
89
100
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
101
|
+
/*
|
102
|
+
* @private
|
103
|
+
* @method
|
104
|
+
*
|
105
|
+
* Scans the given element for presentation styles from css.
|
106
|
+
*
|
107
|
+
* @params {element} the dom element to scan
|
108
|
+
* @returns {String} a style string that was copied from the element
|
109
|
+
*/
|
110
|
+
_updateViewStyle: function(el) {
|
111
|
+
var styles = '',
|
112
|
+
s=SC.getStyle(el,'font-size');
|
113
|
+
|
114
|
+
if(s && s.length>0) styles = styles + "font-size: "+ s + " !important; ";
|
115
|
+
|
116
|
+
s=SC.getStyle(el,'font-family');
|
117
|
+
if(s && s.length>0) styles = styles + "font-family: " + s + " !important; ";
|
118
|
+
|
119
|
+
s=SC.getStyle(el,'font-weight');
|
120
|
+
if(s && s.length>0) styles = styles + "font-weight: " + s + " !important; ";
|
121
|
+
|
122
|
+
s=SC.getStyle(el,'z-index');
|
123
|
+
if(s && s.length>0) styles = styles + "z-index: " + s + " !important; ";
|
96
124
|
|
97
|
-
|
98
|
-
|
99
|
-
|
125
|
+
s=SC.getStyle(el,'line-height');
|
126
|
+
if(s && s.length>0) styles = styles + "line-height: " + s + " !important; ";
|
127
|
+
|
128
|
+
s=SC.getStyle(el,'text-align');
|
129
|
+
if(s && s.length>0) styles = styles + "text-align: " + s + " !important; ";
|
130
|
+
|
131
|
+
s=SC.getStyle(el,'top-margin');
|
132
|
+
if(s && s.length>0) styles = styles + "top-margin: " + s + " !important; ";
|
133
|
+
|
134
|
+
s=SC.getStyle(el,'bottom-margin');
|
135
|
+
if(s && s.length>0) styles = styles + "bottom-margin: " + s + " !important; ";
|
136
|
+
|
137
|
+
s=SC.getStyle(el,'left-margin');
|
138
|
+
if(s && s.length>0) styles = styles + "left-margin: " + s + " !important; ";
|
139
|
+
|
140
|
+
s=SC.getStyle(el,'right-margin');
|
141
|
+
if(s && s.length>0) styles = styles + "right-margin: " + s + " !important; ";
|
142
|
+
|
143
|
+
return styles;
|
144
|
+
},
|
145
|
+
|
146
|
+
/*
|
147
|
+
* @private
|
148
|
+
* @method
|
149
|
+
*
|
150
|
+
* Scans the given element for positioning styles from css.
|
151
|
+
*
|
152
|
+
* @params {element} the dom element to scan
|
153
|
+
* @returns {String} a style string copied from the element
|
100
154
|
*/
|
101
|
-
|
155
|
+
_updateViewPaddingStyle: function(el) {
|
156
|
+
var styles = '',
|
157
|
+
s=SC.getStyle(el,'padding-top');
|
102
158
|
|
103
|
-
|
104
|
-
//@if(debug)
|
105
|
-
if (!options) throw "InlineTextField.beginEditing() requires options";
|
106
|
-
//@end
|
159
|
+
if(s && s.length>0) styles = styles + "top: "+ s + " !important; ";
|
107
160
|
|
108
|
-
|
109
|
-
if
|
110
|
-
|
111
|
-
var layout={}, pane, tarLayout, paneElem, del;
|
161
|
+
s=SC.getStyle(el,'padding-bottom');
|
162
|
+
if(s && s.length>0) styles = styles + "bottom: " + s + " !important; ";
|
112
163
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
this.beginPropertyChanges();
|
117
|
-
|
118
|
-
this.set('isEditing', YES) ;
|
119
|
-
this.set('escapeHTML', options.escapeHTML) ;
|
120
|
-
|
121
|
-
this._optframe = options.frame ;
|
122
|
-
this._optIsCollection = options.isCollection;
|
123
|
-
this._exampleElement = options.exampleElement ;
|
164
|
+
s=SC.getStyle(el,'padding-left');
|
165
|
+
if(s && s.length>0) styles = styles + "left: " + s + " !important; ";
|
124
166
|
|
125
|
-
|
126
|
-
|
127
|
-
}
|
167
|
+
s=SC.getStyle(el,'padding-right');
|
168
|
+
if(s && s.length>0) styles = styles + "right: " + s + " !important; ";
|
128
169
|
|
129
|
-
|
170
|
+
return styles;
|
171
|
+
},
|
172
|
+
|
173
|
+
/*
|
174
|
+
* @private
|
175
|
+
* @method
|
176
|
+
*
|
177
|
+
* Scans the given element for styles and copies them into a style element in
|
178
|
+
* the head. This allows the styles to be overriden by css matching classNames
|
179
|
+
* on the editor.
|
180
|
+
*
|
181
|
+
* @params {element} the dom element to copy
|
182
|
+
*/
|
183
|
+
updateStyle: function(exampleElement) {
|
184
|
+
if(exampleElement.length) exampleElement = exampleElement[0];
|
130
185
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
this.set('isTextArea', YES);
|
137
|
-
} else {
|
138
|
-
this.set('isTextArea', NO);
|
139
|
-
}
|
140
|
-
this._commitOnBlur = (options.commitOnBlur !== undefined) ? options.commitOnBlur : YES ;
|
186
|
+
// the styles are placed into a style element so that they can be overridden
|
187
|
+
// by your css based on the editor className
|
188
|
+
var styleElement = document.getElementById('sc-inline-text-field-style'),
|
189
|
+
s = this._updateViewStyle(exampleElement),
|
190
|
+
p = this._updateViewPaddingStyle(exampleElement),
|
141
191
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
//this.set('selectedRange', options.selectedRange || { start: this._originalValue.length, length: 0 }) ;
|
192
|
+
str = ".inline-editor input{"+s+"}" +
|
193
|
+
".inline-editor textarea{"+s+"}" +
|
194
|
+
".inline-editor .padding{"+p+"}";
|
146
195
|
|
147
|
-
//
|
196
|
+
// the style element is lazily created
|
197
|
+
if(!styleElement) {
|
198
|
+
var head = document.getElementsByTagName('head')[0];
|
199
|
+
styleElement = document.createElement('style');
|
148
200
|
|
201
|
+
styleElement.type= 'text/css';
|
202
|
+
styleElement.media= 'screen';
|
203
|
+
styleElement.id = 'sc-inline-text-field-style';
|
149
204
|
|
150
|
-
|
151
|
-
// If it's not available, ask the delegate for it.
|
152
|
-
pane = options.pane;
|
153
|
-
if (!pane) {
|
154
|
-
pane = del.get('pane');
|
205
|
+
head.appendChild(styleElement);
|
155
206
|
}
|
156
|
-
paneElem = pane.$()[0];
|
157
207
|
|
158
|
-
|
159
|
-
|
208
|
+
// now that we know the element exists, write the styles
|
209
|
+
|
210
|
+
// IE method
|
211
|
+
if(styleElement.styleSheet) styleElement.styleSheet.cssText= str;
|
212
|
+
// other browsers
|
213
|
+
else styleElement.innerHTML = str;
|
214
|
+
},
|
215
|
+
|
216
|
+
/*
|
217
|
+
* @method
|
218
|
+
*
|
219
|
+
* Positions the editor over the passed view.
|
220
|
+
*
|
221
|
+
* If you want to tweak the positioning of the editor, you may pass a custom
|
222
|
+
* frame for it to position itself on.
|
223
|
+
*
|
224
|
+
* Additionally, if your view is a member of a collectionView, the isCollection
|
225
|
+
* flag should be set to YES.
|
226
|
+
*
|
227
|
+
* @param {SC.View} the view to be positioned over
|
228
|
+
* @param {Hash} optional custom frame
|
229
|
+
* @param {Boolean} if the view is a member of a collection
|
230
|
+
*/
|
231
|
+
positionOverTargetView: function(target, isCollection, pane, frame, elem) {
|
232
|
+
if(!pane) pane = target.get('pane');
|
233
|
+
|
234
|
+
if(!elem) elem = target.$()[0];
|
160
235
|
|
161
|
-
|
162
|
-
if
|
163
|
-
|
236
|
+
// if we weren't given a frame, build one from the target
|
237
|
+
if(!frame) {
|
238
|
+
var tempFrame = target.get('frame');
|
239
|
+
|
240
|
+
frame = SC.offset(elem);
|
241
|
+
|
242
|
+
frame.height = tempFrame.height;
|
243
|
+
frame.width = tempFrame.width;
|
164
244
|
}
|
165
|
-
|
166
|
-
|
245
|
+
|
246
|
+
var layout={},
|
247
|
+
paneElem = pane.$()[0],
|
248
|
+
tarLayout = target.get('layout');
|
249
|
+
|
250
|
+
layout.height = frame.height;
|
251
|
+
layout.width = frame.width;
|
252
|
+
|
253
|
+
if (isCollection && tarLayout.left) {
|
254
|
+
layout.left=frame.x-tarLayout.left-paneElem.offsetLeft-1;
|
167
255
|
if(SC.browser.msie==7) layout.left--;
|
168
256
|
} else {
|
169
|
-
layout.left=
|
257
|
+
layout.left=frame.x-paneElem.offsetLeft-1;
|
170
258
|
if(SC.browser.msie==7) layout.left--;
|
171
259
|
}
|
172
|
-
|
173
|
-
if (
|
174
|
-
layout.top=
|
260
|
+
|
261
|
+
if (isCollection && tarLayout.top) {
|
262
|
+
layout.top=frame.y-tarLayout.top-paneElem.offsetTop;
|
175
263
|
if(SC.browser.msie==7) layout.top=layout.top-2;
|
176
264
|
} else {
|
177
|
-
layout.top=
|
178
|
-
if(SC.browser.msie==7) layout.top=layout.top-2;
|
265
|
+
layout.top=frame.y-paneElem.offsetTop;
|
266
|
+
if(SC.browser.msie==7) layout.top=layout.top-2;
|
179
267
|
}
|
180
268
|
|
181
269
|
this.set('layout', layout);
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
270
|
+
},
|
271
|
+
|
272
|
+
/*
|
273
|
+
* Flag indicating whether the editor is allowed to use multiple lines.
|
274
|
+
* If set to yes it will be rendered using a text area instead of a text input.
|
275
|
+
*
|
276
|
+
* @type {Boolean}
|
277
|
+
*/
|
278
|
+
multiline: NO,
|
279
|
+
|
280
|
+
/*
|
281
|
+
* Translates the multiline flag into something TextFieldView understands.
|
282
|
+
*
|
283
|
+
* @type {Boolean}
|
284
|
+
*/
|
285
|
+
isTextArea: function() {
|
286
|
+
return this.get('multiline');
|
287
|
+
}.property('multiline').cacheable(),
|
288
|
+
|
289
|
+
/*
|
290
|
+
* Begins editing the given view, positions the editor on top of the view, and
|
291
|
+
* copies the styling of the view onto the editor.
|
292
|
+
*
|
293
|
+
* @params {SC.InlineEditable} the view being edited
|
294
|
+
*
|
295
|
+
* @returns {Boolean} YES on success
|
296
|
+
*/
|
297
|
+
beginEditing: function(original, label) {
|
298
|
+
if(!original(label)) return NO;
|
299
|
+
|
300
|
+
var pane = label.get('pane'), elem = this.get('exampleElement');
|
301
|
+
|
302
|
+
this.beginPropertyChanges();
|
303
|
+
|
304
|
+
// if we have an exampleElement we need to make sure it's an actual
|
305
|
+
// DOM element not a jquery object
|
306
|
+
if(elem) {
|
307
|
+
if(elem.length) elem = elem[0];
|
191
308
|
}
|
192
|
-
|
193
|
-
//
|
309
|
+
|
310
|
+
// if we don't have an element we need to get it from the target
|
311
|
+
else {
|
312
|
+
elem = label.$()[0];
|
313
|
+
}
|
314
|
+
|
315
|
+
this.updateStyle(elem);
|
316
|
+
|
317
|
+
this.positionOverTargetView(label, this.get('isCollection'), pane, this.get('exampleFrame'), elem);
|
194
318
|
|
195
319
|
this._previousFirstResponder = pane ? pane.get('firstResponder') : null;
|
196
320
|
this.becomeFirstResponder();
|
197
321
|
this.endPropertyChanges() ;
|
198
|
-
|
199
|
-
// TODO: remove? if(SC.browser.mozilla)this.invokeOnce(this.becomeFirstResponder) ;
|
200
|
-
|
201
|
-
// Become first responder and notify the delegate after run loop completes
|
202
|
-
this.invokeLast(function() {
|
203
|
-
del.inlineEditorDidBeginEditing(this);
|
204
|
-
});
|
205
|
-
|
322
|
+
|
206
323
|
return YES;
|
207
|
-
},
|
208
|
-
|
209
|
-
|
210
|
-
/**
|
211
|
-
Tries to commit the current value of the field and end editing.
|
212
|
-
|
213
|
-
Do not use this method, use the class method instead.
|
214
|
-
|
215
|
-
@param {Event} evt that triggered the commit to happen
|
216
|
-
@returns {Boolean}
|
217
|
-
*/
|
218
|
-
commitEditing: function(evt) {
|
219
|
-
// try to validate field. If it fails, return false.
|
220
|
-
if (!SC.$ok(this.validateSubmit())) return NO ;
|
221
|
-
return this._endEditing(this.get('value'), evt) ;
|
222
|
-
},
|
223
|
-
|
224
|
-
/**
|
225
|
-
Tries to discard the current value of the field and end editing.
|
226
|
-
|
227
|
-
Do not use this method, use the class method instead.
|
324
|
+
}.enhance(),
|
228
325
|
|
229
|
-
@returns {Boolean}
|
230
|
-
*/
|
231
|
-
discardEditing: function() {
|
232
|
-
return this._endEditing(this._originalValue) ;
|
233
|
-
},
|
234
|
-
|
235
326
|
/**
|
236
327
|
Invoked whenever the editor loses (or should lose) first responder
|
237
328
|
status to commit or discard editing.
|
238
329
|
|
239
330
|
@returns {Boolean}
|
240
331
|
*/
|
332
|
+
// TODO: this seems to do almost the same thing as fieldDidBlur
|
241
333
|
blurEditor: function(evt) {
|
242
334
|
if (!this.get('isEditing')) return YES ;
|
243
|
-
return this.
|
335
|
+
return this.commitOnBlur ? this.commitEditing() : this.discardEditing();
|
244
336
|
},
|
245
337
|
|
246
|
-
/**
|
338
|
+
/**
|
339
|
+
@method
|
340
|
+
@private
|
341
|
+
|
247
342
|
Called by commitEditing and discardEditing to actually end editing.
|
248
343
|
|
249
|
-
@param {String} finalValue that will be set as value
|
250
|
-
@param {Event} evt that triggered the end editing to occur
|
251
|
-
@param {Boolean} didDiscard if called from discardEditing
|
252
|
-
@returns {Boolean} NO if editing did not exit
|
253
344
|
*/
|
254
|
-
_endEditing: function(
|
255
|
-
|
256
|
-
var del = this.get('editorDelegate') ;
|
257
|
-
|
258
|
-
if (!this.get('isEditing') || !del) return YES ;
|
259
|
-
|
260
|
-
if (!del.inlineEditorShouldCommitEditing(this, finalValue)) {
|
261
|
-
//@if(debug)
|
262
|
-
SC.Logger.warn('InlineTextField._endEditing() cannot end without inlineEditorShouldCommitEditing() on the delegate.');
|
263
|
-
//@end
|
264
|
-
return NO;
|
265
|
-
}
|
266
|
-
// OK, we are allowed to end editing. Notify delegate of final value
|
267
|
-
// and clean up.
|
268
|
-
del.inlineEditorDidEndEditing(this, finalValue);
|
269
|
-
|
270
|
-
// If the delegate set a class name, let's clean it up:
|
271
|
-
if(this._className) this.setClassName(this._className, false);
|
272
|
-
|
273
|
-
// cleanup cached values
|
274
|
-
this._originalValue = this._delegate = this._exampleElement = this._optframe = this._className = null ;
|
275
|
-
this.set('isEditing', NO) ;
|
345
|
+
_endEditing: function(original) {
|
346
|
+
var ret = original();
|
276
347
|
|
277
348
|
// resign first responder if not done already. This may call us in a
|
278
349
|
// loop but since isEditing is already NO, nothing will happen.
|
@@ -283,50 +354,12 @@ SC.InlineTextFieldView = SC.TextFieldView.extend(
|
|
283
354
|
} else this.resignFirstResponder();
|
284
355
|
}
|
285
356
|
this._previousFirstResponder = null ; // clearout no matter what
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
/**
|
293
|
-
YES if the editor is currently visible and editing.
|
294
|
-
|
295
|
-
@property {Boolean}
|
296
|
-
*/
|
297
|
-
isEditing: NO,
|
298
|
-
|
299
|
-
// TODO: make this function work for 1.0
|
300
|
-
// /**
|
301
|
-
// Resizes the visible textarea to fix the actual text in the text area.
|
302
|
-
//
|
303
|
-
// This method works by keeping a div positioned immediately beneath the
|
304
|
-
// text area with an opacity of 0 that contains the same text as the
|
305
|
-
// input text field itself. This is then used to calculate the required
|
306
|
-
// size for the text area.
|
307
|
-
// */
|
308
|
-
// resizeToFit: function(newValue)
|
309
|
-
// {
|
310
|
-
//
|
311
|
-
//
|
312
|
-
//
|
313
|
-
// var sizer = this.outlet('sizer');
|
314
|
-
// var field = this.outlet('field');
|
315
|
-
//
|
316
|
-
// // XSS attack waiting to happen... escape the form input;
|
317
|
-
// var text = (newValue || '').escapeHTML();
|
318
|
-
//
|
319
|
-
// // convert the textarea's newlines into something comparable for the sizer
|
320
|
-
// // div appending a space to give a line with no text a visible height.
|
321
|
-
// text = text.replace((/ {2}/g), " ").replace(/\n/g, "<br /> ");
|
322
|
-
//
|
323
|
-
// // get the text size
|
324
|
-
// sizer.set('innerHTML', text || " ");
|
325
|
-
// sizer.recacheFrames() ;
|
326
|
-
// var h = sizer.get('frame').height;
|
327
|
-
// this.set('frame', { height: h }) ;
|
328
|
-
// },
|
329
|
-
|
357
|
+
|
358
|
+
return ret;
|
359
|
+
}.enhance(),
|
360
|
+
|
361
|
+
// TODO: make textArea automatically resize to fit content
|
362
|
+
|
330
363
|
/** @private */
|
331
364
|
mouseDown: function(e) {
|
332
365
|
arguments.callee.base.call(this, e) ;
|
@@ -405,7 +438,7 @@ SC.InlineTextFieldView = SC.TextFieldView.extend(
|
|
405
438
|
// edit.
|
406
439
|
/** @private */
|
407
440
|
insertNewline: function(evt) {
|
408
|
-
if (this.
|
441
|
+
if (this.get('isTextArea')) {
|
409
442
|
evt.allowDefault();
|
410
443
|
return arguments.callee.base.call(this, evt) ;
|
411
444
|
} else {
|
@@ -426,11 +459,11 @@ SC.InlineTextFieldView = SC.TextFieldView.extend(
|
|
426
459
|
// editable, begins editing.
|
427
460
|
/** @private */
|
428
461
|
insertTab: function(evt) {
|
429
|
-
var
|
462
|
+
var target = this.target; // removed by commitEditing()
|
430
463
|
this.resignFirstResponder();
|
431
464
|
this.commitEditing() ;
|
432
|
-
if(
|
433
|
-
var next =
|
465
|
+
if(target){
|
466
|
+
var next = target.get('nextValidKeyView');
|
434
467
|
if(next && next.beginEditing) next.beginEditing();
|
435
468
|
}
|
436
469
|
return YES ;
|
@@ -438,11 +471,11 @@ SC.InlineTextFieldView = SC.TextFieldView.extend(
|
|
438
471
|
|
439
472
|
/** @private */
|
440
473
|
insertBacktab: function(evt) {
|
441
|
-
var
|
474
|
+
var target = this.target; // removed by commitEditing()
|
442
475
|
this.resignFirstResponder();
|
443
476
|
this.commitEditing() ;
|
444
|
-
if(
|
445
|
-
var prev =
|
477
|
+
if(target){
|
478
|
+
var prev = target.get('previousValidKeyView');
|
446
479
|
if(prev && prev.beginEditing) prev.beginEditing();
|
447
480
|
}
|
448
481
|
return YES ;
|
@@ -459,131 +492,162 @@ SC.InlineTextFieldView = SC.TextFieldView.extend(
|
|
459
492
|
evt.allowDefault();
|
460
493
|
return YES ;
|
461
494
|
}
|
462
|
-
|
463
495
|
});
|
464
496
|
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
497
|
+
/*
|
498
|
+
* These class methods allow you to manage an editor without implementing
|
499
|
+
* SC.Editable. They exist for backwards compatibility and should no longer be
|
500
|
+
* used.
|
501
|
+
*/
|
502
|
+
SC.mixin(SC.InlineTextFieldView, {
|
503
|
+
inlineEditorDelegate: SC.InlineTextFieldDelegate,
|
504
|
+
|
505
|
+
label: null,
|
506
|
+
editor: null,
|
507
|
+
|
508
|
+
/*
|
509
|
+
* @method
|
510
|
+
*
|
511
|
+
* This method creates a singleton editor editing your view. Delegate methods
|
512
|
+
* will be called on your view as normal.
|
513
|
+
*
|
514
|
+
* To trigger compatibility mode, call this method with a hash of options. The
|
515
|
+
* required options are:
|
516
|
+
*
|
517
|
+
{{{
|
518
|
+
SC.InlineTextFieldView.beginEditing({
|
519
|
+
delegate: myView,
|
520
|
+
frame: myView.get('frame'),
|
521
|
+
exampleElement: myView.$()
|
522
|
+
}) ;
|
523
|
+
}}}
|
524
|
+
*
|
525
|
+
- *delegate* The view that should be notified of events on the editor.
|
526
|
+
- *frame* The frame of the view that you want the editor to position itself over.
|
527
|
+
- *exampleElement* A DOM element to use when copying styles.
|
528
|
+
|
529
|
+
* Other options may be passed to further customize the editor:
|
530
|
+
*
|
531
|
+
- *multiline* If YES then the hitting return will add to the value instead of exiting the inline editor.
|
532
|
+
- *commitOnBlur* If YES then blurring will commit the value, otherwise it will discard the current value. Defaults to YES.
|
533
|
+
- *validator* Validator to be attached to the field.
|
534
|
+
|
535
|
+
The editor expects your source view to implement the InlineTextFieldViewDelegate protocol.
|
536
|
+
|
537
|
+
@params {Object} a hash of options or the view to edit
|
538
|
+
@returns {Boolean} whether editing began successfully
|
482
539
|
*/
|
483
|
-
beginEditing: function(
|
484
|
-
|
485
|
-
|
486
|
-
//
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
540
|
+
beginEditing: function(label) {
|
541
|
+
var del, editor, options, value, labelProxy;
|
542
|
+
|
543
|
+
// for backwards compatibility, we allow you to pass an options hash with options that will be set on the editor
|
544
|
+
if(SC.typeOf(label) === SC.T_HASH) {
|
545
|
+
options = label;
|
546
|
+
|
547
|
+
if(!options.delegate || !options.exampleElement || !options.frame) {
|
548
|
+
SC.error("Delegate, exampleElement, and frame options are required.");
|
549
|
+
return NO;
|
550
|
+
}
|
551
|
+
|
552
|
+
label = options.delegate;
|
553
|
+
value = options.value;
|
554
|
+
}
|
555
|
+
|
556
|
+
else {
|
557
|
+
value = label.get('value');
|
558
|
+
}
|
559
|
+
|
560
|
+
labelProxy = SC.beget(label);
|
561
|
+
|
562
|
+
// these functions may have side effects, so they need to have their
|
563
|
+
// this reference assigned to the original object before proxying
|
564
|
+
labelProxy.mixin({
|
565
|
+
inlineEditorWillBeginEditing: function() {
|
566
|
+
if(label.inlineEditorWillBeginEditing) label.inlineEditorWillBeginEditing.apply(label, arguments);
|
567
|
+
},
|
568
|
+
|
569
|
+
inlineEditorDidBeginEditing: function() {
|
570
|
+
if(label.inlineEditorDidBeginEditing) label.inlineEditorDidBeginEditing.apply(label, arguments);
|
571
|
+
},
|
572
|
+
|
573
|
+
inlineEditorWillCommitEditing: function(editor, value, editable) {
|
574
|
+
if(label.inlineEditorWillCommitEditing) label.inlineEditorWillCommitEditing(editor, value, editable);
|
575
|
+
if(label.inlineEditorWillEndEditing) label.inlineEditorWillEndEditing(editor, value);
|
576
|
+
},
|
577
|
+
|
578
|
+
inlineEditorDidCommitEditing: function(editor, value, editable) {
|
579
|
+
if(label.inlineEditorDidCommitEditing) label.inlineEditorDidCommitEditing(editor, value, editable);
|
580
|
+
if(label.inlineEditorDidEndEditing) label.inlineEditorDidEndEditing(editor, value);
|
581
|
+
|
582
|
+
SC.InlineTextFieldView._endEditing();
|
583
|
+
},
|
584
|
+
|
585
|
+
inlineEditorWillDiscardEditing: function(editor, editable) {
|
586
|
+
if(label.inlineEditorWillDiscardEditing) label.inlineEditorWillDiscardEditing(editor, editable);
|
587
|
+
if(label.inlineEditorWillEndEditing) label.inlineEditorWillEndEditing(editor, this.get('value'));
|
588
|
+
},
|
589
|
+
|
590
|
+
inlineEditorDidDiscardEditing: function(editor, editable) {
|
591
|
+
if(label.inlineEditorDidDiscardEditing) label.inlineEditorDidDiscardEditing(editor, editable);
|
592
|
+
if(label.inlineEditorDidEndEditing) label.inlineEditorDidEndEditing(editor, this.get('value'));
|
593
|
+
|
594
|
+
SC.InlineTextFieldView._endEditing();
|
595
|
+
}
|
596
|
+
});
|
597
|
+
|
598
|
+
if(label.inlineEditorShouldBeginEditing && !label.inlineEditorShouldBeginEditing(label, value)) return NO;
|
599
|
+
|
600
|
+
this.editor = editor = this.inlineEditorDelegate.acquireEditor(label);
|
601
|
+
|
602
|
+
editor.set('value', value);
|
603
|
+
|
604
|
+
if(options) {
|
605
|
+
editor.set('exampleElement', options.exampleElement);
|
606
|
+
editor.set('exampleFrame', options.frame);
|
607
|
+
editor.set('multiline', options.multiline);
|
608
|
+
editor.set('escapeHTML', options.escapeHTML);
|
609
|
+
editor.set('isCollection', options.isCollection);
|
610
|
+
editor.set('commitOnBLur', options.commitOnBlur);
|
611
|
+
editor.set('validator', options.validator);
|
612
|
+
}
|
613
|
+
|
614
|
+
if(editor) return editor.beginEditing(labelProxy);
|
615
|
+
else return NO;
|
507
616
|
},
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
@returns {Boolean} YES if the inline editor ended or no edit was in
|
517
|
-
progress.
|
617
|
+
|
618
|
+
/*
|
619
|
+
* @method
|
620
|
+
*
|
621
|
+
* Ends editing on the current editor and saves the value back to the
|
622
|
+
* view being edited.
|
623
|
+
*
|
624
|
+
* @returns {Boolean} whether the editor was allowed to commit successfully
|
518
625
|
*/
|
519
626
|
commitEditing: function() {
|
520
|
-
return this.editor ? this.editor.commitEditing() :
|
627
|
+
return this.inlineEditorDelegate.editor ? this.inlineEditorDelegate.editor.commitEditing() : NO;
|
521
628
|
},
|
522
629
|
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
@returns {Boolean} YES if the inline editor ended or no edit was in progress.
|
630
|
+
/*
|
631
|
+
* @method
|
632
|
+
*
|
633
|
+
* Ends editing on the current editor without saving the value.
|
634
|
+
*
|
635
|
+
* @returns {Boolean} whether the editor was allowed to discard successfully
|
531
636
|
*/
|
532
637
|
discardEditing: function() {
|
533
|
-
return this.editor ? this.editor.discardEditing() :
|
534
|
-
},
|
535
|
-
|
536
|
-
/** @private */
|
537
|
-
updateViewStyle: function() {
|
538
|
-
var el = this._exampleElement[0],
|
539
|
-
styles = '',
|
540
|
-
s=SC.getStyle(el,'font-size');
|
541
|
-
if(s && s.length>0) styles = styles + "font-size: "+ s + " !important; ";
|
542
|
-
s=SC.getStyle(el,'font-family');
|
543
|
-
if(s && s.length>0) styles = styles + "font-family: " + s + " !important; ";
|
544
|
-
s=SC.getStyle(el,'font-weight');
|
545
|
-
if(s && s.length>0) styles = styles + "font-weight: " + s + " !important; ";
|
546
|
-
s=SC.getStyle(el,'z-index');
|
547
|
-
if(s && s.length>0) styles = styles + "z-index: " + s + " !important; ";
|
548
|
-
s=SC.getStyle(el,'line-height');
|
549
|
-
if(s && s.length>0) styles = styles + "line-height: " + s + " !important; ";
|
550
|
-
s=SC.getStyle(el,'text-align');
|
551
|
-
if(s && s.length>0) styles = styles + "text-align: " + s + " !important; ";
|
552
|
-
s=SC.getStyle(el,'top-margin');
|
553
|
-
if(s && s.length>0) styles = styles + "top-margin: " + s + " !important; ";
|
554
|
-
s=SC.getStyle(el,'bottom-margin');
|
555
|
-
if(s && s.length>0) styles = styles + "bottom-margin: " + s + " !important; ";
|
556
|
-
s=SC.getStyle(el,'left-margin');
|
557
|
-
if(s && s.length>0) styles = styles + "left-margin: " + s + " !important; ";
|
558
|
-
s=SC.getStyle(el,'right-margin');
|
559
|
-
if(s && s.length>0) styles = styles + "right-margin: " + s + " !important; ";
|
560
|
-
|
561
|
-
return styles;
|
638
|
+
return this.inlineEditorDelegate.editor ? this.inlineEditorDelegate.editor.discardEditing() : NO;
|
562
639
|
},
|
563
640
|
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
if(s && s.length>0) styles = styles + "top: "+ s + " !important; ";
|
570
|
-
s=SC.getStyle(el,'padding-bottom');
|
571
|
-
if(s && s.length>0) styles = styles + "bottom: " + s + " !important; ";
|
572
|
-
s=SC.getStyle(el,'padding-left');
|
573
|
-
if(s && s.length>0) styles = styles + "left: " + s + " !important; ";
|
574
|
-
s=SC.getStyle(el,'padding-right');
|
575
|
-
if(s && s.length>0) styles = styles + "right: " + s + " !important; ";
|
576
|
-
|
577
|
-
return styles;
|
578
|
-
},
|
579
|
-
|
580
|
-
|
581
|
-
/**
|
582
|
-
The current shared inline editor. This property will often remain NULL
|
583
|
-
until you actually begin editing for the first time.
|
584
|
-
|
585
|
-
@property {SC.InlineTextFieldView}
|
641
|
+
/*
|
642
|
+
* @private
|
643
|
+
* @method
|
644
|
+
*
|
645
|
+
* Cleans up the current editor and editing context.
|
586
646
|
*/
|
587
|
-
|
588
|
-
|
589
|
-
|
647
|
+
_endEditing: function() {
|
648
|
+
this.inlineEditorDelegate.releaseEditor(this.editor);
|
649
|
+
|
650
|
+
this.editor = null;
|
651
|
+
}
|
652
|
+
});
|
653
|
+
|