sproutcore 1.10.3.1 → 1.11.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG +4 -8
- data/VERSION.yml +2 -2
- data/lib/frameworks/sproutcore/Buildfile +5 -4
- data/lib/frameworks/sproutcore/CHANGELOG.md +274 -40
- data/lib/frameworks/sproutcore/CONTRIBUTORS.md +133 -0
- data/lib/frameworks/sproutcore/README.md +31 -144
- data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +9 -4
- data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +5 -0
- data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +1 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +15 -2
- data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +11 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/mixins/websocket_delegate.js +90 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +81 -5
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +23 -4
- data/lib/frameworks/sproutcore/frameworks/ajax/system/websocket.js +475 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +149 -26
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/websocket.js +197 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/xhr_response_test.js +65 -0
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +4 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/horizontal_stack_layout.js +232 -52
- data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/vertical_stack_layout.js +235 -49
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +23 -13
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +81 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/english.lproj/ordinal.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/{desktop/tests/views/disclosure/methods.js → core_foundation/french.lproj/ordinal.js} +7 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +2 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +104 -69
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane_statechart.js +6 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/child_view_layout_protocol.js +59 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/view_transition_protocol.js +18 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +192 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/bezier_curves.js +52 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/color.js +384 -64
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +6 -14
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +21 -35
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +72 -36
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +90 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +55 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +20 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/req_anim_frame.js +9 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +763 -542
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +1 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +14 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/touch.js +538 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +56 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +99 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_case.js +25 -19
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/core_tests.js +75 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/ext/number_test.js +81 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/action_support.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/responder_context.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +19 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/color.js +36 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/design_modes_test.js +83 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMainPane.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/mouse_events.js +338 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/root_responder.js +14 -89
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/root_responder/touch.js +106 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/touch.js +136 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/rect.js +42 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +11 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/design_mode_test.js +457 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +36 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/background_color.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/border_frame_test.js +51 -24
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/childViewLayout_test.js +176 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +46 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +69 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layout.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +30 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +376 -71
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +0 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +117 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view_states_test.js +52 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +656 -42
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +159 -38
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +0 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/design_mode.js +206 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +0 -28
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +21 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +372 -450
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +28 -13
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +22 -51
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/statechart.js +59 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +0 -29
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +22 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +42 -36
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +54 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +178 -59
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +206 -132
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +214 -118
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +96 -13
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +14 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +82 -42
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +272 -177
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/store_interaction_test.js +54 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/datetime_recordattribute.js +24 -16
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +6 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +267 -35
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +57 -46
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +150 -53
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +57 -17
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +13 -9
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/polymorphism → datastore}/tests/models/polymorphism/many.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/polymorphism → datastore}/tests/models/polymorphism/simple.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/polymorphism → datastore}/tests/models/polymorphism/single.js +12 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +20 -15
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +9 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +80 -14
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/autonomous_dataSourceCallbacks.js +280 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/autonomous_pushChanges.js +232 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +31 -5
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +16 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/core_methods.js +60 -40
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/materializeRecord.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/{resources → english.lproj}/strings.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/french.lproj/strings.js +45 -0
- data/lib/frameworks/sproutcore/frameworks/designer/designers/object_designer.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +125 -44
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +139 -48
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/draggable.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +59 -56
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +13 -49
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +466 -305
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +49 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +79 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/split.js +12 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu_item_view.css +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/overlay-scroller.css +187 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +94 -30
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +163 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +97 -78
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +61 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +7 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +47 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +66 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +21 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +12 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +17 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +9 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/collection_fast_path.js +54 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +52 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +94 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/keyboard.js +177 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/layerIdFor.js +13 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/length.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +104 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +48 -49
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +22 -18
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +17 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/link_view_test.js +136 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/contentIndexesInRect.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +53 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/layoutForContentIndex.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +25 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowOffsetForContentIndex.js +102 -27
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/{rowHeightForContentIndex.js → rowSizeForContentIndex.js} +7 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +70 -75
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +29 -30
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +57 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/menu_scroll_view/menu_scroll_view_test.js +206 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +15 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +16 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +164 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/scale.js +387 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/touch.js +549 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +214 -45
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +73 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +88 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/methods.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/ui.js +54 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/dividers.js +21 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/static_content.js +31 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +109 -29
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +779 -603
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +106 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/link_view.js +406 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +437 -245
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +124 -62
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +176 -597
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroller_view.js +206 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +3 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +56 -158
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll_view.js +2560 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +458 -242
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +117 -54
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +18 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +162 -34
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +30 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +33 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +47 -22
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +0 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form_row.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/mixins/select_view_menu.js +24 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/ext/menu_resizing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/bindings.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/mixins/select_view_menu/check_selected.js +7 -9
- data/lib/frameworks/sproutcore/frameworks/{desktop/tests/panes/select_button/methods.js → experimental/frameworks/select_view/tests/views/select/method.js} +54 -76
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/tests/views/select/selected_item.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/{desktop/tests/panes/select_button → experimental/frameworks/select_view/tests/views/select}/ui.js +107 -36
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +225 -66
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +39 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +5 -18
- data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/inflections.js +84 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/french.lproj/inflections.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +3 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +6 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +408 -239
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +2 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/spanish.lproj/inflections.js +38 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +104 -76
- data/lib/frameworks/sproutcore/frameworks/foundation/system/string.js +20 -94
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +33 -22
- data/lib/frameworks/sproutcore/frameworks/foundation/system/undo_manager.js +475 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/auto_resize_test.js +163 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +2 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/methods.js +268 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/undo_manager.js +231 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +27 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +24 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +135 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/fade_transition.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/pop_transition.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/scale_transition.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/slide_transition.js +4 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_dissolve_transition.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +65 -15
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +193 -213
- data/lib/frameworks/sproutcore/frameworks/jquery/{jquery-1.8.3-patched.js → jquery-1.11.1.js} +7507 -6684
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +28 -11
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +54 -25
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +0 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/number.js +36 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/window.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +156 -66
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +150 -65
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +57 -11
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +68 -49
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +23 -23
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/ext/number_test.js +44 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +0 -10
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable.js +340 -285
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +104 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +15 -2
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +21 -18
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +52 -19
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/pane.js +27 -24
- data/lib/frameworks/sproutcore/frameworks/template_view/controls/button.js +30 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/collection.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/view.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/mixins/template_helpers/checkbox_support.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/handlebars.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/template_view/views/bindable_span.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +16 -14
- data/lib/frameworks/sproutcore/frameworks/testing/core.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +13 -0
- data/lib/frameworks/sproutcore/lib/index.rhtml +2 -2
- data/lib/frameworks/sproutcore/phantomjs/test_runner.js +28 -7
- data/lib/frameworks/sproutcore/scripts/run_sc_server_master.sh +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/_variables.css +2 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +1 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +3 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal.css +15 -15
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_overlay.css +74 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical.css +11 -13
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_overlay.css +74 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/knob-active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/knob-active@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/knob@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/{22px → jumbo}/slider.css +9 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/jumbo/track@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/knob-active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/knob-active@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/knob@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/slider.css +32 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/regular/track@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +13 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/knob-active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/knob-active@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/knob@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/slider.css +32 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/small/track@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +2 -3
- data/lib/sproutcore/builders/chance_file.rb +3 -3
- data/lib/sproutcore/helpers/minifier.rb +1 -0
- data/vendor/chance/lib/chance/instance.rb +34 -34
- data/vendor/chance/lib/chance/instance/spriting.rb +21 -16
- metadata +81 -58
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +0 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +0 -710
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +0 -267
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/touch-scroller.css +0 -196
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +0 -224
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +0 -163
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +0 -177
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +0 -2053
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +0 -1024
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +0 -404
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/render_delegates/menu_scroller.js +0 -28
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/tests/menu/scroll.js +0 -235
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +0 -363
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroller.js +0 -250
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +0 -47
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +0 -134
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/desktop_scroller.js +0 -92
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/native_scroll.js +0 -25
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/scroll.js +0 -33
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/touch_scroller.js +0 -76
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/integration.js +0 -25
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/methods.js +0 -143
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/ui.js +0 -256
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +0 -1164
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroller.js +0 -332
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +0 -236
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroller.js +0 -347
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroll.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroller.js +0 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +0 -804
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroller.js +0 -133
- data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +0 -41
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_touch.css +0 -91
- data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_touch.css +0 -92
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/slider.css +0 -27
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/slider.css +0 -27
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob_active.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/track.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/track.png +0 -0
@@ -9,7 +9,7 @@
|
|
9
9
|
// ========================================================================
|
10
10
|
/*globals module, test, ok, isObj, equals, expects */
|
11
11
|
|
12
|
-
var fromObject, midObject, toObject, binding, Bon1, bon2, first, second, third, binding1, binding2;
|
12
|
+
var FromObject, fromObject, midObject, toObject, binding, Bon1, bon2, first, second, third, binding1, binding2;
|
13
13
|
|
14
14
|
module("basic object binding", {
|
15
15
|
|
@@ -366,7 +366,67 @@ test("two bindings to the same value should sync in the order they are initializ
|
|
366
366
|
|
367
367
|
});
|
368
368
|
|
369
|
-
module("
|
369
|
+
module("Binding transforms", {
|
370
|
+
setup: function () {
|
371
|
+
BindableObject = SC.Object.extend({
|
372
|
+
booleanValue: NO,
|
373
|
+
numericValue: 42,
|
374
|
+
stringValue: 'forty-two',
|
375
|
+
arrayValue: [4, 2],
|
376
|
+
undefinedValue: undefined
|
377
|
+
});
|
378
|
+
// temporarily set up two source objects in the SC namespace so we can
|
379
|
+
// use property paths to access them
|
380
|
+
SC.testControllerA = BindableObject.create();
|
381
|
+
SC.testControllerB = BindableObject.create();
|
382
|
+
},
|
383
|
+
|
384
|
+
teardown: function () {
|
385
|
+
SC.testControllerA.destroy();
|
386
|
+
delete SC.testControllerA;
|
387
|
+
SC.testControllerB.destroy();
|
388
|
+
delete SC.testControllerB;
|
389
|
+
}
|
390
|
+
});
|
391
|
+
|
392
|
+
test('Binding sync when only transformed value has changed', function () {
|
393
|
+
var toObject;
|
394
|
+
SC.run(function () {
|
395
|
+
toObject = SC.Object.create({
|
396
|
+
transformedValue: null,
|
397
|
+
transformedValueBinding: SC.Binding.oneWay('SC.testControllerA.undefinedValue').transform(function (value, binding) {
|
398
|
+
if (value === undefined) {
|
399
|
+
return 'VALUE IS UNDEFINED';
|
400
|
+
} else {
|
401
|
+
return value;
|
402
|
+
}
|
403
|
+
})
|
404
|
+
});
|
405
|
+
});
|
406
|
+
|
407
|
+
equals(toObject.get('transformedValue'), 'VALUE IS UNDEFINED', 'value is undefined, so bound value should be');
|
408
|
+
});
|
409
|
+
|
410
|
+
test("ALL THE OTHER BINDING TRANSFORMS.");
|
411
|
+
|
412
|
+
test("equalTo", function() {
|
413
|
+
SC.RunLoop.begin();
|
414
|
+
var toObject = SC.Object.create({
|
415
|
+
isFortyTwo: null,
|
416
|
+
isFortyTwoBinding: SC.Binding.oneWay('SC.testControllerA.numericValue').equalTo(42)
|
417
|
+
});
|
418
|
+
SC.RunLoop.end();
|
419
|
+
|
420
|
+
equals(toObject.get('isFortyTwo'), true, "Value is equal to 42, so bound value should should be");
|
421
|
+
|
422
|
+
SC.RunLoop.begin();
|
423
|
+
SC.testControllerA.set('numericValue', 45);
|
424
|
+
SC.RunLoop.end();
|
425
|
+
|
426
|
+
equals(toObject.get('isFortyTwo'), false, "Value is no longer 42, so bound value should be");
|
427
|
+
});
|
428
|
+
|
429
|
+
module("Binding transform: `and`", {
|
370
430
|
|
371
431
|
setup: function () {
|
372
432
|
// temporarily set up two source objects in the SC namespace so we can
|
@@ -386,9 +446,10 @@ module("AND binding", {
|
|
386
446
|
|
387
447
|
teardown: function () {
|
388
448
|
SC.testControllerA.destroy();
|
449
|
+
delete SC.testControllerA;
|
389
450
|
SC.testControllerB.destroy();
|
451
|
+
delete SC.testControllerB;
|
390
452
|
}
|
391
|
-
|
392
453
|
});
|
393
454
|
|
394
455
|
test("bound value should be YES if both sources are YES", function () {
|
@@ -722,3 +783,43 @@ test("works with local path", function () {
|
|
722
783
|
|
723
784
|
equals(TestNamespace.toObject.get('relative'), "newerValue");
|
724
785
|
});
|
786
|
+
|
787
|
+
module("Overriding binding in subclass", {
|
788
|
+
setup: function() {
|
789
|
+
FromObject = SC.Object.extend({
|
790
|
+
localValue1: 'hello',
|
791
|
+
localValue2: 'world',
|
792
|
+
value: null,
|
793
|
+
valueBinding: SC.Binding.oneWay('.localValue1')
|
794
|
+
});
|
795
|
+
},
|
796
|
+
teardown: function() {
|
797
|
+
FromObject = null;
|
798
|
+
}
|
799
|
+
});
|
800
|
+
|
801
|
+
test("Bindings override in subclasses.", function() {
|
802
|
+
SC.LOG_DUPLICATE_BINDINGS = NO; // clean consoles
|
803
|
+
|
804
|
+
SC.RunLoop.begin();
|
805
|
+
fromObject = FromObject.create();
|
806
|
+
SC.RunLoop.end();
|
807
|
+
|
808
|
+
equals(fromObject.get('value'), 'hello', "PRELIM: Superclass binding gives value of");
|
809
|
+
|
810
|
+
fromObject.destroy();
|
811
|
+
|
812
|
+
SC.RunLoop.begin();
|
813
|
+
fromObject = FromObject.create({
|
814
|
+
valueBinding: SC.Binding.oneWay('.localValue2')
|
815
|
+
});
|
816
|
+
SC.RunLoop.end();
|
817
|
+
|
818
|
+
ok(fromObject._bindings.length === 1, "Duplicate bindings are not created.")
|
819
|
+
|
820
|
+
equals(fromObject.get('value'), 'world', "Superclass binding should have been overridden in the subclass, giving value a value of");
|
821
|
+
|
822
|
+
fromObject.destroy();
|
823
|
+
|
824
|
+
SC.LOG_DUPLICATE_BINDINGS = YES;
|
825
|
+
});
|
@@ -6,7 +6,7 @@
|
|
6
6
|
// ==========================================================================
|
7
7
|
// Author: Richard Klancer <rpk@pobox.com>
|
8
8
|
|
9
|
-
/*globals module test ok equals
|
9
|
+
/*globals module, test, ok, equals, expect */
|
10
10
|
|
11
11
|
module("Problematic SC.ObserverSet.getMethods() removal", {
|
12
12
|
setup: function () {
|
@@ -116,3 +116,16 @@ test("Removing all the methods on a target should clear the internal tracking of
|
|
116
116
|
equals(observerSet.members.length, 0, "The ObserverSet should have a members length of");
|
117
117
|
ok(!observerSet._members[targetGuid], "The ObserverSet should not be tracking methods for the target: %@".fmt(targetGuid));
|
118
118
|
});
|
119
|
+
|
120
|
+
test("Observers should pass the context along to their method", function () {
|
121
|
+
var target = {},
|
122
|
+
method = function (passedContext) {
|
123
|
+
equals(passedContext, originalContext, "The observer function should receive the context");
|
124
|
+
},
|
125
|
+
observerSet,
|
126
|
+
originalContext = "ABCD";
|
127
|
+
|
128
|
+
observerSet = SC.ObserverSet.create();
|
129
|
+
observerSet.add(target, method, originalContext);
|
130
|
+
observerSet.invokeMethods();
|
131
|
+
});
|
@@ -27,6 +27,19 @@ test("Passing named arguments", function() {
|
|
27
27
|
]), "Hello, World!");
|
28
28
|
});
|
29
29
|
|
30
|
+
test("Passing named arguments with a SC.Object instance", function() {
|
31
|
+
var t = SC.Object.create({
|
32
|
+
prop: 'Hello',
|
33
|
+
computedProp: function () {
|
34
|
+
return 'World';
|
35
|
+
}.property().cacheable(),
|
36
|
+
unknownProperty: function (key, value) {
|
37
|
+
if (key === "unknownProp") return "!";
|
38
|
+
}
|
39
|
+
});
|
40
|
+
equals(SC.String.fmt("%{prop}, %{computedProp}%{unknownProp}", [t]), "Hello, World!");
|
41
|
+
});
|
42
|
+
|
30
43
|
test("Passing incomplete named arguments", function() {
|
31
44
|
equals( SC.String.fmt("%{first}, %{last}%{punctuation}", [{first: 'Hello', punctuation: '!'}]), "Hello, %{last}!", "Formatting a string with an incomplete set of named arguments should leave unspecified named arguments in place." );
|
32
45
|
})
|
@@ -35,7 +48,7 @@ test("Passing arguments with formatters", function() {
|
|
35
48
|
var F = function(value) {
|
36
49
|
return "$" + value;
|
37
50
|
};
|
38
|
-
|
51
|
+
|
39
52
|
equals(SC.String.fmt("%{number}", [{ number: 12, numberFormatter: F }]), "$12", "Formatter was applied");
|
40
53
|
});
|
41
54
|
|
@@ -43,6 +56,6 @@ test("Passing formatting strings with formatters", function() {
|
|
43
56
|
var F = function(value, arg) {
|
44
57
|
return "$" + value + ";" + arg;
|
45
58
|
};
|
46
|
-
|
59
|
+
|
47
60
|
equals(SC.String.fmt("%{number:blah}", [{ number: 12, numberFormatter: F }]), "$12;blah", "Formatter was applied with argument");
|
48
61
|
});
|
@@ -7,6 +7,19 @@
|
|
7
7
|
|
8
8
|
/*globals SC */
|
9
9
|
|
10
|
+
//@if(debug)
|
11
|
+
SC.TRACE_STATECHART_STYLE = {
|
12
|
+
init: 'font-style: italic; font-weight: bold;', // Initialization
|
13
|
+
action: 'color: #5922ab; font-style: italic; font-weight: bold;', // Actions and events
|
14
|
+
actionInfo: 'color: #5922ab; font-style: italic;', // Actions and events
|
15
|
+
route: 'color: #a67000; font-style: italic;', // Routing
|
16
|
+
gotoState: 'color: #479a48; font-style: italic; font-weight: bold;', // Goto state
|
17
|
+
gotoStateInfo: 'color: #479a48; font-style: italic;', // Goto state
|
18
|
+
enter: 'color: #479a48; font-style: italic; font-weight: bold;', // Entering
|
19
|
+
exit: 'color: #479a48; font-style: italic; font-weight: bold;' // Exiting
|
20
|
+
};
|
21
|
+
//@endif
|
22
|
+
|
10
23
|
/**
|
11
24
|
@class
|
12
25
|
|
@@ -50,9 +63,9 @@ SC.State = SC.Object.extend(
|
|
50
63
|
/**
|
51
64
|
Used to log a state trace message
|
52
65
|
*/
|
53
|
-
stateLogTrace: function(msg) {
|
66
|
+
stateLogTrace: function(msg, style) {
|
54
67
|
var sc = this.get('statechart');
|
55
|
-
sc.statechartLogTrace("%@: %@".fmt(this, msg));
|
68
|
+
sc.statechartLogTrace(" %@: %@".fmt(this, msg), style);
|
56
69
|
},
|
57
70
|
|
58
71
|
/* END DEBUG ONLY PROPERTIES AND METHODS */
|
@@ -454,7 +467,7 @@ SC.State = SC.Object.extend(
|
|
454
467
|
if (del.statechartShouldStateHandleTriggeredRoute(sc, this, context)) {
|
455
468
|
//@if(debug)
|
456
469
|
if (this.get('trace') && loc) {
|
457
|
-
this.stateLogTrace("will handle route '%@'".fmt(loc));
|
470
|
+
this.stateLogTrace("will handle route '%@'".fmt(loc), SC.TRACE_STATECHART_STYLE.route);
|
458
471
|
}
|
459
472
|
//@endif
|
460
473
|
this.handleTriggeredRoute(context);
|
@@ -721,7 +734,7 @@ SC.State = SC.Object.extend(
|
|
721
734
|
a substate of this state, otherwise null is returned.
|
722
735
|
|
723
736
|
If the given value is a string, then the string is assumed to be a path expression
|
724
|
-
to a substate. The value is then parsed to find the
|
737
|
+
to a substate. The value is then parsed to find the closest match. For path expression
|
725
738
|
syntax, refer to the {@link SC.StatePathMatcher} class.
|
726
739
|
|
727
740
|
If there is no match then null is returned. If there is more than one match then null
|
@@ -1114,7 +1127,7 @@ SC.State = SC.Object.extend(
|
|
1114
1127
|
// Now begin by trying a basic method on the state to respond to the event
|
1115
1128
|
if (SC.typeOf(this[event]) === SC.T_FUNCTION) {
|
1116
1129
|
//@if(debug)
|
1117
|
-
if (trace) this.stateLogTrace("will handle event '%@'".fmt(event));
|
1130
|
+
if (trace) this.stateLogTrace("will handle event '%@'".fmt(event), SC.TRACE_STATECHART_STYLE.actionInfo);
|
1118
1131
|
//@endif
|
1119
1132
|
sc.stateWillTryToHandleEvent(this, event, event);
|
1120
1133
|
ret = (this[event](arg1, arg2) !== NO);
|
@@ -1126,7 +1139,7 @@ SC.State = SC.Object.extend(
|
|
1126
1139
|
var handler = this._registeredStringEventHandlers[event];
|
1127
1140
|
if (handler) {
|
1128
1141
|
//@if(debug)
|
1129
|
-
if (trace) this.stateLogTrace("%@ will handle event '%@'".fmt(handler.name, event));
|
1142
|
+
if (trace) this.stateLogTrace("%@ will handle event '%@'".fmt(handler.name, event), SC.TRACE_STATECHART_STYLE.actionInfo);
|
1130
1143
|
//@endif
|
1131
1144
|
sc.stateWillTryToHandleEvent(this, event, handler.name);
|
1132
1145
|
ret = (handler.handler.call(this, event, arg1, arg2) !== NO);
|
@@ -1143,7 +1156,7 @@ SC.State = SC.Object.extend(
|
|
1143
1156
|
handler = this._registeredRegExpEventHandlers[i];
|
1144
1157
|
if (event.match(handler.regexp)) {
|
1145
1158
|
//@if(debug)
|
1146
|
-
if (trace) this.stateLogTrace("%@ will handle event '%@'".fmt(handler.name, event));
|
1159
|
+
if (trace) this.stateLogTrace("%@ will handle event '%@'".fmt(handler.name, event), SC.TRACE_STATECHART_STYLE.actionInfo);
|
1147
1160
|
//@endif
|
1148
1161
|
sc.stateWillTryToHandleEvent(this, event, handler.name);
|
1149
1162
|
ret = (handler.handler.call(this, event, arg1, arg2) !== NO);
|
@@ -1156,7 +1169,7 @@ SC.State = SC.Object.extend(
|
|
1156
1169
|
// handle the event
|
1157
1170
|
if (SC.typeOf(this['unknownEvent']) === SC.T_FUNCTION) {
|
1158
1171
|
//@if(debug)
|
1159
|
-
if (trace) this.stateLogTrace("unknownEvent will handle event '%@'".fmt(event));
|
1172
|
+
if (trace) this.stateLogTrace("unknownEvent will handle event '%@'".fmt(event), SC.TRACE_STATECHART_STYLE.actionInfo);
|
1160
1173
|
//@endif
|
1161
1174
|
sc.stateWillTryToHandleEvent(this, event, 'unknownEvent');
|
1162
1175
|
ret = (this.unknownEvent(event, arg1, arg2) !== NO);
|
@@ -1403,16 +1416,6 @@ SC.State = SC.Object.extend(
|
|
1403
1416
|
return this.get('fullPath');
|
1404
1417
|
},
|
1405
1418
|
|
1406
|
-
/** @private */
|
1407
|
-
_enteredSubstatesDidChange: function() {
|
1408
|
-
this.notifyPropertyChange('enteredSubstates');
|
1409
|
-
}.observes('*enteredSubstates.[]'),
|
1410
|
-
|
1411
|
-
/** @private */
|
1412
|
-
_currentSubstatesDidChange: function() {
|
1413
|
-
this.notifyPropertyChange('currentSubstates');
|
1414
|
-
}.observes('*currentSubstates.[]'),
|
1415
|
-
|
1416
1419
|
/** @private */
|
1417
1420
|
_statechartOwnerDidChange: function() {
|
1418
1421
|
this.notifyPropertyChange('owner');
|
@@ -362,8 +362,12 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
362
362
|
|
363
363
|
NOTE: This is only available in debug mode!
|
364
364
|
*/
|
365
|
-
statechartLogTrace: function (msg) {
|
366
|
-
|
365
|
+
statechartLogTrace: function (msg, style) {
|
366
|
+
if (style) {
|
367
|
+
SC.Logger.log("%c%@: %@".fmt(this.get('statechartLogPrefix'), msg), style);
|
368
|
+
} else {
|
369
|
+
SC.Logger.info("%@: %@".fmt(this.get('statechartLogPrefix'), msg));
|
370
|
+
}
|
367
371
|
},
|
368
372
|
|
369
373
|
/* END DEBUG ONLY PROPERTIES AND METHODS */
|
@@ -548,7 +552,7 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
548
552
|
this.addObserver(traceKey, this, '_statechartTraceDidChange');
|
549
553
|
this._statechartTraceDidChange();
|
550
554
|
|
551
|
-
if (trace) this.statechartLogTrace("BEGIN initialize statechart");
|
555
|
+
if (trace) this.statechartLogTrace("BEGIN initialize statechart", SC.TRACE_STATECHART_STYLE.init);
|
552
556
|
//@endif
|
553
557
|
|
554
558
|
var rootState = this.get('rootState'),
|
@@ -592,7 +596,7 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
592
596
|
this.gotoState(rootState);
|
593
597
|
|
594
598
|
//@if(debug)
|
595
|
-
if (trace) this.statechartLogTrace("END initialize statechart");
|
599
|
+
if (trace) this.statechartLogTrace("END initialize statechart", SC.TRACE_STATECHART_STYLE.init);
|
596
600
|
//@endif
|
597
601
|
},
|
598
602
|
|
@@ -797,13 +801,27 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
797
801
|
//@if(debug)
|
798
802
|
var trace = this.get('allowStatechartTracing');
|
799
803
|
if (trace) {
|
800
|
-
this.statechartLogTrace("BEGIN gotoState: %@".fmt(state));
|
801
|
-
msg = "starting from current state: %@";
|
802
|
-
msg = msg.fmt(fromCurrentState ? fromCurrentState : '
|
803
|
-
this.statechartLogTrace(msg);
|
804
|
-
|
805
|
-
|
806
|
-
|
804
|
+
this.statechartLogTrace("BEGIN gotoState: %@".fmt(state), SC.TRACE_STATECHART_STYLE.gotoState);
|
805
|
+
msg = " starting from current state: %@";
|
806
|
+
msg = msg.fmt(fromCurrentState ? fromCurrentState : '-- none --');
|
807
|
+
this.statechartLogTrace(msg, SC.TRACE_STATECHART_STYLE.gotoStateInfo);
|
808
|
+
|
809
|
+
var len = this.getPath('currentStates.length');
|
810
|
+
// For many states, we list each on its own line.
|
811
|
+
if (len > 2) {
|
812
|
+
msg = "current states before:\n%@";
|
813
|
+
msg = msg.fmt(this.get('currentStates').getEach('fullPath').join('\n'));
|
814
|
+
}
|
815
|
+
// For a few states, all on one line.
|
816
|
+
else if (len > 0) {
|
817
|
+
msg = " current states before: %@";
|
818
|
+
msg = msg.fmt(this.get('currentStates').getEach('fullPath').join(', '));
|
819
|
+
}
|
820
|
+
// For no states, no states.
|
821
|
+
else {
|
822
|
+
msg = " current states before: --none--";
|
823
|
+
}
|
824
|
+
this.statechartLogTrace(msg, SC.TRACE_STATECHART_STYLE.gotoStateInfo);
|
807
825
|
}
|
808
826
|
//@endif
|
809
827
|
|
@@ -821,7 +839,7 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
821
839
|
|
822
840
|
if (pivotState) {
|
823
841
|
//@if(debug)
|
824
|
-
if (trace) this.statechartLogTrace("pivot state = %@".fmt(pivotState));
|
842
|
+
if (trace) this.statechartLogTrace(" pivot state = %@".fmt(pivotState), SC.TRACE_STATECHART_STYLE.gotoStateInfo);
|
825
843
|
//@endif
|
826
844
|
if (pivotState.get('substatesAreConcurrent') && pivotState !== state) {
|
827
845
|
this.statechartLogError("Can not go to state %@ from %@. Pivot state %@ has concurrent substates.".fmt(state, fromCurrentState, pivotState));
|
@@ -926,8 +944,12 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
926
944
|
|
927
945
|
//@if(debug)
|
928
946
|
if (this.get('allowStatechartTracing')) {
|
929
|
-
|
930
|
-
|
947
|
+
if (this.getPath('currentStates.length') > 2) {
|
948
|
+
this.statechartLogTrace(" current states after:\n%@".fmt(this.get('currentStates').getEach('fullPath').join(' \n')), SC.TRACE_STATECHART_STYLE.gotoStateInfo);
|
949
|
+
} else {
|
950
|
+
this.statechartLogTrace(" current states after: %@".fmt(this.get('currentStates').getEach('fullPath').join(', ')), SC.TRACE_STATECHART_STYLE.gotoStateInfo);
|
951
|
+
}
|
952
|
+
this.statechartLogTrace("END gotoState: %@".fmt(gotoState), SC.TRACE_STATECHART_STYLE.gotoState);
|
931
953
|
}
|
932
954
|
//@endif
|
933
955
|
|
@@ -953,6 +975,7 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
953
975
|
parentState = state.get('parentState');
|
954
976
|
while (parentState) {
|
955
977
|
parentState.get('currentSubstates').removeObject(state);
|
978
|
+
parentState.notifyPropertyChange('currentSubstates');
|
956
979
|
parentState = parentState.get('parentState');
|
957
980
|
}
|
958
981
|
}
|
@@ -960,16 +983,18 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
960
983
|
parentState = state;
|
961
984
|
while (parentState) {
|
962
985
|
parentState.get('enteredSubstates').removeObject(state);
|
986
|
+
parentState.notifyPropertyChange('enteredSubstates');
|
963
987
|
parentState = parentState.get('parentState');
|
964
988
|
}
|
965
989
|
|
966
990
|
//@if(debug)
|
967
991
|
if (this.get('allowStatechartTracing')) {
|
968
|
-
this.statechartLogTrace("<-- exiting state: %@".fmt(state));
|
992
|
+
this.statechartLogTrace("<-- exiting state: %@".fmt(state), SC.TRACE_STATECHART_STYLE.exit);
|
969
993
|
}
|
970
994
|
//@endif
|
971
995
|
|
972
996
|
state.set('currentSubstates', []);
|
997
|
+
state.notifyPropertyChange('currentSubstates');
|
973
998
|
|
974
999
|
state.stateWillBecomeExited(context);
|
975
1000
|
var result = this.exitState(state, context);
|
@@ -1006,6 +1031,7 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
1006
1031
|
parentState = state;
|
1007
1032
|
while (parentState) {
|
1008
1033
|
parentState.get('currentSubstates').pushObject(state);
|
1034
|
+
parentState.notifyPropertyChange('currentSubstates');
|
1009
1035
|
parentState = parentState.get('parentState');
|
1010
1036
|
}
|
1011
1037
|
}
|
@@ -1013,11 +1039,18 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
1013
1039
|
parentState = state;
|
1014
1040
|
while (parentState) {
|
1015
1041
|
parentState.get('enteredSubstates').pushObject(state);
|
1042
|
+
parentState.notifyPropertyChange('enteredSubstates');
|
1016
1043
|
parentState = parentState.get('parentState');
|
1017
1044
|
}
|
1018
1045
|
|
1019
1046
|
//@if(debug)
|
1020
|
-
if (this.get('allowStatechartTracing'))
|
1047
|
+
if (this.get('allowStatechartTracing')) {
|
1048
|
+
if (state.enterStateByRoute && SC.kindOf(context, SC.StateRouteHandlerContext)) {
|
1049
|
+
this.statechartLogTrace("--> entering state (by route): %@".fmt(state), SC.TRACE_STATECHART_STYLE.enter);
|
1050
|
+
} else {
|
1051
|
+
this.statechartLogTrace("--> entering state: %@".fmt(state), SC.TRACE_STATECHART_STYLE.enter);
|
1052
|
+
}
|
1053
|
+
}
|
1021
1054
|
//@endif
|
1022
1055
|
|
1023
1056
|
state.stateWillBecomeEntered(context);
|
@@ -1176,7 +1209,7 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
1176
1209
|
//@if(debug)
|
1177
1210
|
var trace = this.get('allowStatechartTracing');
|
1178
1211
|
if (trace) {
|
1179
|
-
this.statechartLogTrace("BEGIN sendEvent: '%@'".fmt(event));
|
1212
|
+
this.statechartLogTrace("BEGIN sendEvent: '%@'".fmt(event), SC.TRACE_STATECHART_STYLE.action);
|
1180
1213
|
}
|
1181
1214
|
//@endif
|
1182
1215
|
|
@@ -1201,8 +1234,8 @@ SC.StatechartManager = /** @scope SC.StatechartManager.prototype */{
|
|
1201
1234
|
|
1202
1235
|
//@if(debug)
|
1203
1236
|
if (trace) {
|
1204
|
-
if (!statechartHandledEvent) this.statechartLogTrace("No state was able handle event %@".fmt(event));
|
1205
|
-
this.statechartLogTrace("END sendEvent: '%@'".fmt(event));
|
1237
|
+
if (!statechartHandledEvent) this.statechartLogTrace("No state was able to handle event %@".fmt(event), SC.TRACE_STATECHART_STYLE.action);
|
1238
|
+
this.statechartLogTrace("END sendEvent: '%@'".fmt(event), SC.TRACE_STATECHART_STYLE.action);
|
1206
1239
|
}
|
1207
1240
|
//@endif
|
1208
1241
|
|